我有一个文本框,我在其中引入一个数字和一个名为Add的按钮,它在列表框中引入了这个数字。在我点击完成按钮后添加所有想要的数字后,添加数据库中列表框中的内容。
我的数据库表是带有ID IDnumber NAME
的数字。
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 = " ";
}
答案 0 :(得分:0)
你应该阅读并学习基本ADO.NET来做到这一点,简单的插入实现将是这样的(代码未经过测试,你需要使用循环来做你想要的,但这个例子只是一个基本的插入。):
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();
}
答案 1 :(得分:0)
您尚未提供btnFinalizeSO&lt; click事件的实际代码。如果还没有,则必须实现的第一步是与数据库的连接,例如使用Entity Framework。如果您使用Entity Framework进行连接,则可以从数据库创建表的对象以将其注入数据库。 例如:
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();
}
}
这或多或少是您所需要的。抓住异常可能会很好。