如何使用gridview将值插入到同一个表中?Asp.net c#,sql
我做了很多尝试,但找不到解决这个问题的方法。这是我的问题。实际上,我正在ASP.NET C#中创建“数据库编辑器”。这是我的数据库“tbl#U字段”表 在其中,用户插入值并创建表。我知道这可以通过查询轻松完成,我可以做到,但首先我想在表中存储值。我想当用户单击创建表时,然后每次打开此gridview时,这是一幅图像,当用户单击“插入”时,值插入数据库表“tbl_字段”并在上面显示插入的行。但问题是,当另一个用户登录并创建表时,此griview和插入的行再次显示。我是初学者,不知道如何处理此问题。我正在尝试解释我的问题,希望我的问题是清楚的。以下是我的aspx代码:`如何使用gridview将值插入到同一个表中?Asp.net c#,sql,c#,asp.net,gridview,C#,Asp.net,Gridview,我做了很多尝试,但找不到解决这个问题的方法。这是我的问题。实际上,我正在ASP.NET C#中创建“数据库编辑器”。这是我的数据库“tbl#U字段”表 在其中,用户插入值并创建表。我知道这可以通过查询轻松完成,我可以做到,但首先我想在表中存储值。我想当用户单击创建表时,然后每次打开此gridview时,这是一幅图像,当用户单击“插入”时,值插入数据库表“tbl_字段”并在上面显示插入的行。但问题是,当另一个用户登录并创建表时,此griview和插入的行再次显示。我是初学者,不知道如何处理此问题。
<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
与包含一个虚拟元素的列表绑定,当没有来自数据库的数据时,可以初始化该列表哪个选项解释了您的要求,第一个还是第二个?您只需要标题行还是标题行+空行?请给我发电子邮件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;
}