【发布时间】:2014-11-21 06:10:09
【问题描述】:
我有一个带有asp:DropDownList 的表单,它从Item 表中的Item_Description 列填充其内容。
我想允许用户从下拉列表中选择一个项目,并在提交表单时,使用 C#/T-SQL 将所选项目的 ItemID 值插入到 Orders 表中。
理论上我可以通过一些冗长的 if/else 语句来实现这一点,但这似乎太简单了,不需要这么多代码。
我可以通过将asp:Textbox 值分配给参数并在提交时插入它们来更新其他表。当用户从列表中选择相关项目时,我似乎无法弄清楚如何将 ItemID 传递给 Orders 表。
附:我已经建立了与我的数据库的连接,防止 SQL 注入等。
下拉列表:
ID="ddlItems"
表格代码:
CREATE TABLE Item
(
ItemID int primary key,
Item_Description varchar(255)
);
CREATE TABLE Orders
(
OrderID int primary key,
Order_Item varchar(255)
);
提交按钮点击事件的代码隐藏方法:
protected void Submit_Click(object sender, EventArgs e)
{
SqlConnection conn;
SqlCommand comm;
SqlDataReader reader;
conn = new SqlConnection("Server=*omitted*");
comm = new SqlCommand("INSERT INTO Orders VALUES @ItemID;", conn);
comm.Parameters.Add("@ItemID", System.Data.SqlDbType.Int);
comm.Parameters["@ItemID"].Value = <<<This is where I need help>>>;
try
{
conn.Open();
reader = comm.ExecuteReader();
reader.Close();
}
catch
{
results.Text = "Error adding data. ";
}
finally
{
// Close the connection
conn.Close();
results.Text = "Added data.";
}
}
下拉列表绑定:
<asp:DropDOwnList ID="ddlItems" runat="server" AutoPostBack="True" AppendDataBoundItems="True" DataSourceID="SqlDataSource1" DataTextField="Item_Description" DataValueField="Item_Description">
<asp:ListItem Value=""></asp:ListItem>
<asp:DropDownList>
【问题讨论】:
-
我们不能在 SQL Server 中将 Where 子句与 Insert 语句一起使用
-
显示绑定下拉列表的代码,以及从下拉列表中获取数据的表格架构!
-
@Dhaval 如果您可以显示您的下拉绑定代码,这很容易!
-
我可以设置 DataValueField="ItemID" 来完成这项工作吗?
-
基本上你想要绑定下拉或插入数据??我仍然不明白你的问题,所以请探索更多,以便我可以提供代码......
标签: c# html asp.net sql-server