从列表框添加到数据库
Adding from a Listbox to database
我有一个输入数字的文本框和一个名为添加的按钮,用于输入列表框中的数字。当我点击一个按钮完成添加所有想要的数字后,添加数据库列表框中的内容。
我的数据库 table 是带有 ID IDnumber NAME
的数字。
IDnumber
= 当我从数据库中的列表框中添加多个号码时,我希望所有号码都具有相同的 ID。
例如在我的列表中我有
- 45341
- 5466
- 4646
- 464
并且在我的数据库中有
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 来做到这一点,简单的插入实现是这样的(代码没有测试,你需要使用循环来做你想做的,但这个例子只是一个基本插入。):
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 的点击事件的实际代码。如果您还没有,那么您必须实施的第一步是连接到您的数据库,例如 Entity Framework。如果您使用 Entity Framework 连接,您可以从数据库创建 table 的对象以将它们注入数据库。
例如:
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();
}
}
这或多或少是您所需要的。捕获异常可能是件好事。
我有一个输入数字的文本框和一个名为添加的按钮,用于输入列表框中的数字。当我点击一个按钮完成添加所有想要的数字后,添加数据库列表框中的内容。
我的数据库 table 是带有 ID IDnumber NAME
的数字。
IDnumber
= 当我从数据库中的列表框中添加多个号码时,我希望所有号码都具有相同的 ID。
例如在我的列表中我有
- 45341
- 5466
- 4646
- 464
并且在我的数据库中有
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 来做到这一点,简单的插入实现是这样的(代码没有测试,你需要使用循环来做你想做的,但这个例子只是一个基本插入。):
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 的点击事件的实际代码。如果您还没有,那么您必须实施的第一步是连接到您的数据库,例如 Entity Framework。如果您使用 Entity Framework 连接,您可以从数据库创建 table 的对象以将它们注入数据库。 例如:
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();
}
}
这或多或少是您所需要的。捕获异常可能是件好事。