数据库系统之1.使用gridview动态增加行的实现

数据库系统之1.使用gridview动态增加行的实现

现在在实习,项目经理要求做个简单的数据库系统,实现简单的创建数据库,删除数据库,编辑字段等功能

今天简单做了一些,首先是使用gridview动态增加行的实现

 后台实现代码:

         protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindTestData();
               
            }
        }
        
        protected void BindTestData()
        {
            //模拟出一些原始数据绑定DataGrid
            DataTable dt1 = new DataTable("Table1");
            dt1.Columns.Add("ID");
            dt1.Columns.Add("字段名称");
            dt1.Columns.Add("字段长度");
            dt1.Columns.Add("中文注释");
            dt1.Columns.Add("默认值");
            dt1.Columns.Add("字段类型");
            dt1.Columns.Add("是否为空");
            dt1.Columns.Add("是否自增");

            dt1.Rows.Add(new object[] { 1, "Id", "4", "主键", "0","int","否","是" });
            dt1.Rows.Add(new object[] { 2, "adder", "4", "添加人员", "0", "int", "否", "否" });
            dt1.Rows.Add(new object[] { 3, "addtime", "", "添加时间", "getdate()", "datetime", "否", "否" });
            dt1.Rows.Add(new object[] { 4, "moder", "4", "修改人员", "0", "int", "否", "否" });
            dt1.Rows.Add(new object[] { 5, "modtime", "", "修改时间", "getdate()", "datetime", "否", "否" });
            dt1.Rows.Add(new object[] { 6, "delstatus", "1", "删除标识", "0", "tinyint", "否", "否" });
            dt1.AcceptChanges();

            this.GridView1.DataSource = dt1;
            this.GridView1.DataBind();
        }

        protected DataTable GetDataFromGrid()
        {
            DataTable dt1 = new DataTable("Table1");
            dt1.Columns.Add("ID");
            dt1.Columns.Add("字段名称");
            dt1.Columns.Add("字段长度");
            dt1.Columns.Add("中文注释");
            dt1.Columns.Add("默认值");
            dt1.Columns.Add("字段类型");
            dt1.Columns.Add("是否为空");
            dt1.Columns.Add("是否自增");
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
                GridViewRow gRow = GridView1.Rows[i];
                DataRow newRow = dt1.NewRow();
                newRow[0] = GridView1.DataKeys[i].Value;
                newRow[1] = ((TextBox)gRow.FindControl("TextBox1")).Text;
                newRow[2] = ((TextBox)gRow.FindControl("TextBox2")).Text;
                newRow[3] = ((TextBox)gRow.FindControl("TextBox3")).Text;
                newRow[4] = ((TextBox)gRow.FindControl("TextBox4")).Text;
                newRow[5] = ((DropDownList)gRow.FindControl("DropDownList1")).SelectedValue;
                newRow[6] = ((DropDownList)gRow.FindControl("DropDownList2")).SelectedValue;
                newRow[7] = ((DropDownList)gRow.FindControl("DropDownList3")).SelectedValue;
                dt1.Rows.Add(newRow);
            }
            dt1.AcceptChanges();
            return dt1;
        }

    
        protected void btn_addfile_Click(object sender, EventArgs e)
        {
            DataTable dt = this.GetDataFromGrid();
            DataRow newRow = dt.NewRow();
            newRow["字段类型"] = "int";
            newRow["是否为空"] = "否";
            newRow["是否自增"] = "否";
            newRow["默认值"] = "";
            newRow["中文注释"] = "";
            dt.Rows.Add(newRow);
            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }

 

 

前台页面代码:

  <center>
                需要创建的数据库表名:
                <asp:TextBox ID="txt_tbname" runat="server" Width="100px"></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfv1" runat="server" ControlToValidate="txt_tbname"
                    Display="Dynamic" ErrorMessage="数据库表名不能为空!"></asp:RequiredFieldValidator>主键名称:
                <asp:TextBox ID="txt_pk" runat="server" Width="100px"></asp:TextBox>
                <asp:RequiredFieldValidator ID="rfv2" runat="server" ControlToValidate="txt_pk"
                    Display="Dynamic" ErrorMessage="请明确主键名称!"></asp:RequiredFieldValidator><br />
                <asp:GridView ID="GridView1" CssClass="dg_perant" runat="server" AutoGenerateColumns="False"
                    DataKeyNames="id">
                    <Columns>
                        <asp:TemplateField>
                            <ItemTemplate>
                                <asp:CheckBox ID="CheckBox1" runat="server" />
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="字段名称">
                            <ItemTemplate>
                                <asp:TextBox ID="TextBox1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "字段名称")%>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="字段长度">
                            <ItemTemplate>
                                <asp:TextBox ID="TextBox2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "字段长度")%>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="中文注释">
                            <ItemTemplate>
                                <asp:TextBox ID="TextBox3" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "中文注释")%>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="默认值">
                            <ItemTemplate>
                                <asp:TextBox ID="TextBox4" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "默认值")%>'></asp:TextBox>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="字段类型">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "字段类型")%>'
                                     DataSourceID="ObjectDataSource1"  DataTextField="name" DataValueField="name" 
                                  >
                                   
                                </asp:DropDownList>
                                <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" 
                                    SelectMethod="GetDataSet" TypeName="SqlHelper">
                                    <SelectParameters>
                                        <asp:Parameter Name="safeSql" Type="String" />
                                    </SelectParameters>
                                </asp:ObjectDataSource>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="是否为空">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList2" runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "是否为空")%>'>
                                    <asp:ListItem Value="否" Selected="True">否</asp:ListItem>
                                    <asp:ListItem Value="是">是</asp:ListItem>
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField HeaderText="是否自增">
                            <ItemTemplate>
                                <asp:DropDownList ID="DropDownList3" runat="server" SelectedValue='<%# DataBinder.Eval(Container.DataItem, "是否自增")%>'>
                                    <asp:ListItem Value="否" Selected="True">否</asp:ListItem>
                                    <asp:ListItem Value="是">是</asp:ListItem>
                                </asp:DropDownList>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </Columns>
                </asp:GridView>
                <br />
                <asp:Button ID="btn_addfile" runat="server" class="Boutton_Orange" Text="添加空行" 
                    onclick="btn_addfile_Click"  />
                <asp:Button ID="btn_save" runat="server" class="Boutton_Orange" Text="保存所有" 
                    onclick="btn_save_Click"   />
                <asp:Button ID="btn_del" runat="server" class="Boutton_Orange" Text="删除数据库" 
                    onclick="btn_del_Click"   />
            </center>

 原文出自艾新草电脑论坛

数据库系统之1.使用gridview动态增加行的实现

posted @ 2012-01-09 22:36  艾新草  阅读(994)  评论(0编辑  收藏  举报