Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用gridview将值插入到同一个表中?Asp.net c#,sql_C#_Asp.net_Gridview - Fatal编程技术网

如何使用gridview将值插入到同一个表中?Asp.net c#,sql

如何使用gridview将值插入到同一个表中?Asp.net c#,sql,c#,asp.net,gridview,C#,Asp.net,Gridview,我做了很多尝试,但找不到解决这个问题的方法。这是我的问题。实际上,我正在ASP.NET C#中创建“数据库编辑器”。这是我的数据库“tbl#U字段”表 在其中,用户插入值并创建表。我知道这可以通过查询轻松完成,我可以做到,但首先我想在表中存储值。我想当用户单击创建表时,然后每次打开此gridview时,这是一幅图像,当用户单击“插入”时,值插入数据库表“tbl_字段”并在上面显示插入的行。但问题是,当另一个用户登录并创建表时,此griview和插入的行再次显示。我是初学者,不知道如何处理此问题。

我做了很多尝试,但找不到解决这个问题的方法。这是我的问题。实际上,我正在ASP.NET C#中创建“数据库编辑器”。这是我的数据库“tbl#U字段”表

在其中,用户插入值并创建表。我知道这可以通过查询轻松完成,我可以做到,但首先我想在表中存储值。我想当用户单击创建表时,然后每次打开此gridview时,这是一幅图像,当用户单击“插入”时,值插入数据库表“tbl_字段”并在上面显示插入的行。但问题是,当另一个用户登录并创建表时,此griview和插入的行再次显示。我是初学者,不知道如何处理此问题。我正在尝试解释我的问题,希望我的问题是清楚的。以下是我的aspx代码:`

<label id="welcome" style="color: Blue" runat="server">
</label>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="user" runat="Server">
<label style="position:relative; top:60px; left:140px  runat="server">Table Name </label>
    <asp:TextBox ID="txttable" runat="server" style="position:relative;   top:60px; left:140px; border-style:double;" ></asp:TextBox>
    <asp:GridView ID="GridView2"  runat="server" ShowHeaderWhenEmpty="True"  
      AutoGenerateColumns="False" BackColor="#DEBA84"
    BorderColor="#DEBA84"  BorderStyle="None" BorderWidth="1px" 
    CellPadding="3" CellSpacing="2"
     ShowFooter="True" Style="margin-left: 136px; margin-top: 72px;
    margin-right: 0px;" Height="16px" Width="685px" onselectedindexchanged="GridView2_SelectedIndexChanged" >

    <Columns>
        <asp:TemplateField HeaderText="Column_Name" SortExpression="Column_Name">

            <EditItemTemplate>
                 <asp:TextBox ID="txtName" runat="server" Text='<%#Bind("Column_Name") %>'></asp:TextBox>
                <asp:RequiredFieldValidator Text="*" ID="colname" ControlToValidate="txtName"
                    runat="server" ErrorMessage="Column Name is Required" ForeColor="Red">
                </asp:RequiredFieldValidator>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label1" runat="server" Text='<%#Bind("Column_Name") %>'></asp:Label>
            </ItemTemplate>

            <FooterTemplate>

                <asp:TextBox ID="textColname" runat="server"></asp:TextBox>
                <asp:RequiredFieldValidator ValidationGroup="INSERT" Text="*" ID="insertcolname" ControlToValidate="textColname"
                    runat="server" ErrorMessage="Column Name is Required" ForeColor="Red">
                </asp:RequiredFieldValidator>


           </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Data_Type" SortExpression="Data_Type">
            <EditItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%#Bind("Data_Type") %>'>
                    <asp:ListItem>Select Datatype</asp:ListItem>
                    <asp:ListItem>int</asp:ListItem>
                    <asp:ListItem>Float</asp:ListItem>
                    <asp:ListItem>Varchar(50)</asp:ListItem>
                    <asp:ListItem>Varchar(100)</asp:ListItem>
                    <asp:ListItem>double</asp:ListItem>
                </asp:DropDownList>
                <asp:RequiredFieldValidator ID="datatype" ControlToValidate="DropDownList1"
                    runat="server" ErrorMessage="Data Type is Required" ForeColor="Red" InitialValue="Select Datatype">
                </asp:RequiredFieldValidator>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("Data_Type") %>'></asp:Label>
            </ItemTemplate>
            <FooterTemplate>
                <asp:DropDownList ID="DropDownList2" runat="server">
                    <asp:ListItem>Select Datatype</asp:ListItem>
                    <asp:ListItem>int</asp:ListItem>
                    <asp:ListItem>Float</asp:ListItem>
                    <asp:ListItem>Varchar(50)</asp:ListItem>
                    <asp:ListItem>Varchar(100)</asp:ListItem>
                    <asp:ListItem>double</asp:ListItem>
                </asp:DropDownList>
                <asp:RequiredFieldValidator ValidationGroup="INSERT" Text="*"  ID="datatype" ControlToValidate="DropDownList2"
                    runat="server" ErrorMessage="Data Type is Required" ForeColor="Red" InitialValue="Select Datatype">
                </asp:RequiredFieldValidator>
            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="Allow_Null_" SortExpression="Allow_Null_">
                                <EditItemTemplate>
                                    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"Allow_Null_")) %>'/>
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBox1" runat="server" Checked='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"Allow_Null_"))%>' enabled="false" />
                                </ItemTemplate>
                                <FooterTemplate>
                                    <asp:CheckBox ID="nulll" runat="server" />
                                </FooterTemplate>
                            </asp:TemplateField>
                            <asp:TemplateField HeaderText="Primary_Key_" SortExpression="Primary_Key_">
                                <EditItemTemplate>
                                    <asp:CheckBox ID="CheckBox2" runat="server" Checked='<%# Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"Primary_Key_")) %>' />
                                </EditItemTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="CheckBox2" runat="server" 
                                        Checked='<%#Convert.ToBoolean(DataBinder.Eval(Container.DataItem,"Primary_Key_")) %>' Enabled="false" />
                                </ItemTemplate>
                                <FooterTemplate>
                                    <asp:CheckBox ID="primary" runat="server" />
                                </FooterTemplate>
                            </asp:TemplateField>

        <asp:CommandField ShowEditButton="True" />
        <asp:CommandField ShowDeleteButton="True" />

        <asp:TemplateField HeaderText="Insert">
        <FooterTemplate>


             <asp:LinkButton ValidationGroup="INSERT" ID="LinkButton1" runat="server" OnClick="lbinssert">INSERT</asp:LinkButton>
            </FooterTemplate>
        </asp:TemplateField>


    </Columns>
    <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" />
    <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" />
    <PagerStyle ForeColor="#8C4510" HorizontalAlign="Center" />
    <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
    <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" />
    <SortedAscendingCellStyle BackColor="#FFF1D4" />
    <SortedAscendingHeaderStyle BackColor="#B95C30" />
    <SortedDescendingCellStyle BackColor="#F1E5CE" />
    <SortedDescendingHeaderStyle BackColor="#93451F" />
</asp:GridView>

<asp:ValidationSummary ValidationGroup="INSERT" ID="ValidationSummary1" ForeColor="Red"
    runat="server" Height="25px" style="margin-left: 140px" />
    <br />
<input type="submit" style="position:relative; width:30px; left:452px; top: 0px; width: 86px;" 
     value="Create table" name="create"/>
<asp:ValidationSummary ID="ValidationSummary2" ForeColor="Red" runat="server" 
    style="margin-left: 142px" />
    <asp:SqlDataSource ID="sql" runat="server" 
     ConnectionString="<%$ ConnectionStrings:db_compilerConnectionString %>" 

     SelectCommand="SELECT [Table_Name], [Column_Name], [Data_Type], [Allow_Null_], [Primary_Key_], [Date] FROM [tbl_field]"
     DeleteCommand="DELETE  FROM [tbl_field] WHERE [Field_id]=@field" InsertCommand="INSERT INTO [tbl_field] ([Table_Name],[Column_Name],[Data_Type],[Database_id],[Allow_Null_],[Primary_Key_])Values (@TableName,@ColumnName,@Dtype,@id,@null,@primary)"
     UpdateCommand="UPDATE [tbl_field] SET [Table_Name]=@TableName, [Column_Name]=@ColumnName,[Data_Type]=@Dtype,[Database_id]=@id,[Allow_Null_]=@null,[Primary_Key_]=@primary">
     <DeleteParameters>
     <asp:Parameter Name="field" Type="Int32" />
     </DeleteParameters>
     <InsertParameters>
     <asp:Parameter Name="TableName" Type="String" />
     <asp:Parameter Name="ColumnName" Type="String" />
      <asp:Parameter Name="Dtype" Type="String" />
       <asp:Parameter Name="id" Type="String" />
        <asp:Parameter Name="null" Type="Boolean" />
         <asp:Parameter Name="primary" Type="Boolean" />


     </InsertParameters>
     <UpdateParameters>
     <asp:Parameter Name="TableName" Type="String" />
      <asp:Parameter Name="ColumnName" Type="String" />
      <asp:Parameter Name="Dtype" Type="String" />
       <asp:Parameter Name="id" Type="String" />
        <asp:Parameter Name="null" Type="Boolean"/>
         <asp:Parameter Name="primary" Type="Boolean" />

     </UpdateParameters>

 </asp:SqlDataSource>
实际上,我绑定了数据库表中的值,所以每次表都会显示插入的值等

  • 如果您的问题是最初只想在没有插入数据时显示标题,那么您可以尝试使用
    GridView
    属性
    ShowHeaderWhenEmpty
    。此属性指示当GridView控件中的列没有数据时,该列的标题是否可见

  • 如果您需要在gridview中没有数据时显示一个空行和标题,那么您需要将
    gridview
    与包含一个虚拟元素的列表绑定,当没有来自数据库的数据时,可以初始化该列表


  • 哪个选项解释了您的要求,第一个还是第二个?您只需要标题行还是标题行+空行?请给我发电子邮件hameed7475@gmail.comI不能在这里解释,所以这就是为什么你可以用来分享代码,然后我可以研究它。
    protected void Page_Load(object sender, EventArgs e)
    {
       SqlConnection cnn = new SqlConnection("Data Source=HAMEED_KHAN\\SQLEXPRESS;Initial Catalog=db_compiler;Integrated Security=True");
            DataTable dt = new DataTable();
            SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_field", cnn);
            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            ad.Fill(dt);
            GridView2.DataSource = dt;
    
            FixGridFooter(dt);
    }
     public void lbinssert(Object sender,EventArgs e)
    {
    
        sql.InsertParameters["TableName"].DefaultValue = txttable.Text;
    
    
        sql.InsertParameters["ColumnName"].DefaultValue = ((TextBox)GridView2.FooterRow.FindControl("textColname")).Text;
    
          sql.InsertParameters["Dtype"].DefaultValue = ((DropDownList)GridView2.FooterRow.FindControl("DropDownList2")).Text;
    
        sql.InsertParameters["id"].DefaultValue = Session["value"].ToString();
    
        sql.InsertParameters["null"].DefaultValue =
          ((CheckBox)GridView2.FooterRow.FindControl("nulll")).Checked == true ? "true" : "false";
        sql.InsertParameters["primary"].DefaultValue = ((CheckBox)GridView2.FooterRow.FindControl("primary")).Checked == true ? "true" : "false";
    
        sql.Insert();
     }
    public void FixGridFooter(DataTable dataSour)
    {
    
    
        dataSour.Rows.Add(dataSour.NewRow());
        dataSour.Rows[0]["Table_Name"] = 0;
        dataSour.Rows[0]["Column_Name"] = 0;
        dataSour.Rows[0]["Data_Type"] = "";
        dataSour.Rows[0]["Database_id"] = 0;
        dataSour.Rows[0]["Allow_Null_"] = true;
        dataSour.Rows[0]["Primary_Key_"] = false;
       dataSour.Rows[0]["Date"] = DateTime.Now.ToString("dd MMM yyyy");
       GridView2.DataSource = dataSour;
        GridView2.DataBind();
    
        //hide empty row - if you want to display it on an event like a button click else it will display as per default.
        GridView2.Rows[0].Visible = false;
        GridView2.ShowFooter = true;
    }