单击按钮时在 table 中插入多行
INSERT more than one row in table on button click
这段代码工作正常,但它的 INSERTING 值仅来自 textbox1 textbox2 和 Date2 如果我有更多的文本框和标签,如何一次单击从不同的控件插入多行。
准确地说,我有 10 对文本框文本框 1 和文本框 2,然后是文本框 3 和文本框 4 以及 10 个标签
日期 2 / 4 /6 / 8
所以在每一行我想要来自文本框[i] 文本框[i+1] 日期[i+1] 和全局变量 buyEUR
的值
private void InsertData_Click(object sender, EventArgs e)
{
SqlCeConnection connection = new SqlCeConnection(@"Data Source=C:\Users\FluksikartoN\Documents\Visual Studio 2012\Projects\BuroFoki\BuroFoki\MainDB.sdf");
connection.Open();
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO TenOperations (EUR, Rate, BGN, Date) Values(@EUR, @Rate, @BGN, @Date)", connection))
{
/* for (int i = 2; i <= 20; i = i+2)
{
TextBox txtBox1 = this.Controls["TextBox" + (i - 1).ToString()] as TextBox;
TextBox txtBox2 = this.Controls["TextBox" + i.ToString()] as TextBox;
Label Date = this.Controls["Date" + i.ToString()] as Label;*/
com.Parameters.AddWithValue("@EUR", textBox2.Text.ToString());
com.Parameters.AddWithValue("@Rate", EURbuy);
com.Parameters.AddWithValue("@BGN", textBox1.Text.ToString());
com.Parameters.AddWithValue("@Date", Date2.Text.ToString());
/*
com.Parameters.AddWithValue("@EUR", textBox4.Text.ToString());
com.Parameters.AddWithValue("@Rate", EURbuy);
com.Parameters.AddWithValue("@BGN", textBox3.Text.ToString());
com.Parameters.AddWithValue("@Date", Date4.Text.ToString());
*/
com.ExecuteNonQuery();
}
connection.Close();
}
您可以创建一个控件数组 See here(虽然没有内在支持,但您可以复制该功能)然后您可以使用循环获取要添加为参数的值,并将该值插入数据库。
试试看是否有效。
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO TenOperations (EUR, Rate, BGN, Date) Values(@EUR1, @Rate1, @BGN1, @Date1),(@EUR2, @Rate2, @BGN2, @Date2)", connection))
{
com.Parameters.AddWithValue("@EUR1", textBox2.Text.ToString());
com.Parameters.AddWithValue("@Rate1", EURbuy);
com.Parameters.AddWithValue("@BGN1", textBox1.Text.ToString());
com.Parameters.AddWithValue("@Date1", Date2.Text.ToString());
com.Parameters.AddWithValue("@EUR2", textBox4.Text.ToString());
com.Parameters.AddWithValue("@Rate2", EURbuy);
com.Parameters.AddWithValue("@BGN2", textBox3.Text.ToString());
com.Parameters.AddWithValue("@Date2", Date4.Text.ToString());
com.ExecuteNonQuery();
}
这段代码工作正常,但它的 INSERTING 值仅来自 textbox1 textbox2 和 Date2 如果我有更多的文本框和标签,如何一次单击从不同的控件插入多行。
准确地说,我有 10 对文本框文本框 1 和文本框 2,然后是文本框 3 和文本框 4 以及 10 个标签 日期 2 / 4 /6 / 8
所以在每一行我想要来自文本框[i] 文本框[i+1] 日期[i+1] 和全局变量 buyEUR
的值private void InsertData_Click(object sender, EventArgs e)
{
SqlCeConnection connection = new SqlCeConnection(@"Data Source=C:\Users\FluksikartoN\Documents\Visual Studio 2012\Projects\BuroFoki\BuroFoki\MainDB.sdf");
connection.Open();
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO TenOperations (EUR, Rate, BGN, Date) Values(@EUR, @Rate, @BGN, @Date)", connection))
{
/* for (int i = 2; i <= 20; i = i+2)
{
TextBox txtBox1 = this.Controls["TextBox" + (i - 1).ToString()] as TextBox;
TextBox txtBox2 = this.Controls["TextBox" + i.ToString()] as TextBox;
Label Date = this.Controls["Date" + i.ToString()] as Label;*/
com.Parameters.AddWithValue("@EUR", textBox2.Text.ToString());
com.Parameters.AddWithValue("@Rate", EURbuy);
com.Parameters.AddWithValue("@BGN", textBox1.Text.ToString());
com.Parameters.AddWithValue("@Date", Date2.Text.ToString());
/*
com.Parameters.AddWithValue("@EUR", textBox4.Text.ToString());
com.Parameters.AddWithValue("@Rate", EURbuy);
com.Parameters.AddWithValue("@BGN", textBox3.Text.ToString());
com.Parameters.AddWithValue("@Date", Date4.Text.ToString());
*/
com.ExecuteNonQuery();
}
connection.Close();
}
您可以创建一个控件数组 See here(虽然没有内在支持,但您可以复制该功能)然后您可以使用循环获取要添加为参数的值,并将该值插入数据库。
试试看是否有效。
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO TenOperations (EUR, Rate, BGN, Date) Values(@EUR1, @Rate1, @BGN1, @Date1),(@EUR2, @Rate2, @BGN2, @Date2)", connection))
{
com.Parameters.AddWithValue("@EUR1", textBox2.Text.ToString());
com.Parameters.AddWithValue("@Rate1", EURbuy);
com.Parameters.AddWithValue("@BGN1", textBox1.Text.ToString());
com.Parameters.AddWithValue("@Date1", Date2.Text.ToString());
com.Parameters.AddWithValue("@EUR2", textBox4.Text.ToString());
com.Parameters.AddWithValue("@Rate2", EURbuy);
com.Parameters.AddWithValue("@BGN2", textBox3.Text.ToString());
com.Parameters.AddWithValue("@Date2", Date4.Text.ToString());
com.ExecuteNonQuery();
}