[英]Adding from a Listbox to database
我有一个文本框,在其中引入了一个数字,还有一个名为“添加”的按钮,在列表框中引入了该数字。 在添加所有想要的数字后,当我单击“完成”按钮以添加数据库列表框中的内容时。
我的数据库表是ID IDnumber NAME
Number。
IDnumber
=当我从数据库的列表框中添加多个数字时,我希望所有数字都具有相同的ID。
例如在我的清单中
在我的数据库中
ID IDnumber NAME
1 1 45341
1 1 5466
1 1 4646
1 1 464
下次我将从列表框中添加时,下一个数字将具有IDnumber
2。
<asp:TextBox ID="txtNrShipment" runat="server" Height="16px" Width="100px"></asp:TextBox>
<asp:Button ID="btnAddSO" runat="server" Text="Add" OnClick="btnAddSO_Click" CausesValidation="False" />
<asp:ListBox ID="ListBoxSO" runat="server">
</asp:ListBox>
<asp:Button ID="btnFinalizeSO" runat="server" Text="Finalize" OnClick="btnFinalizeSO_Click" />
protected void btnAddSO_Click(object sender, EventArgs e)
{
ListBoxSO.Items.Add(txtNrShipment.Text);
txtNrShipment.Text = " ";
}
您应该阅读并学习基本的ADO.NET才能做到这一点,简单的插入实现将是这样的(未经测试的代码,您需要使用loop来完成您想要的事情,但是此示例只是一个基本的插入。):
string connectionString = "yourConnectionString";
string query = "INSERT INTO dbo.YourTable (ID, IDnumber, NAME) " +
"VALUES (@Id, @IDnumber, @Name) ";
// create connection and command
using(SqlConnection cn = new SqlConnection(connectionString))
using(SqlCommand cmd = new SqlCommand(query, cn))
{
// define parameters and their values
cmd.Parameters.Add("@ID", ID);
cmd.Parameters.Add("@IDnumber", IDnumber);
cmd.Parameters.Add("@Name", Name);
//open, insert and close
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
您尚未提供btnFinalizeSO的click事件的实际代码。 如果还没有,则必须实现的第一步是与数据库的连接,例如使用Entity Framework。 如果与Entity Framework连接,则可以从数据库中创建表的对象,以将它们注入db。 例如:
protected void btnFinalizeSO_Click(object sender, EventArgs e)
{
using(MyDataBaseEntities db = new MyDataBaseEntities())
{
Number lastNumber = (from c in db.Number orderby IDNumber select c).LastOrDefaul();
foreach(var item in ListBoxSO.Items)
{
Number n = new Number();
n.IdNumber = lastNumber.IdNumber +1;
n.Id = lastNumber.Id + 1;
n.Name = ListBoxSO.GetItemText(item);
db.Number.Add(n);
}
db.SaveChanges();
}
}
这或多或少是您所需要的。 捕获异常可能很好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.