【发布时间】:2015-08-05 03:30:59
【问题描述】:
此代码工作正常,但其 INSERTING 值仅来自 textbox1 textbox2 和 Date2 如果我有更多文本框和标签如何一键从不同控件插入多行。
确切地说,我有 10 对文本框文本框 1 和文本框 2,然后是文本框 3 和文本框 4 和 10 个标签 日期 2 / 4 /6 / 8
所以在每一行我想要来自 textbox[i] textbox[i+1] Date[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();
}
【问题讨论】:
-
我不确定这一点,但也许你应该只添加一次参数,在循环之前 (com.Parameters.Add("@EUR", [ParamType])),然后,在循环内,只需设置参数的值 (com.Parameters["@EUR"].Value = textBox4.Text.ToString()) 并执行查询。
-
你能举个例子吗,我不确定 ExecuteNonQuery 是否必须在循环内,请给我举个例子来更好地理解这个想法
-
为什么不能使用
DataGridView或DataGrid控件。使用 htat 控件,您可以摆脱多个文本框和标签 -
已经开始使用文本框和标签。为它们设置样式比 DataGrid/View 更好。对 DataGrid 没有太多经验,但我尝试过但无法删除一些我不想在网格中删除的东西
标签: c# sql .net sql-server-ce