我这里想把listview中得到的数据存入SQL server中,但是执行代码后不能存储
private void button6_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConStr);
for (int i = 0; i < listView2.Items.Count; i++)
{
int j = 0;
string SN1 = listView2.Items[i].SubItems[j].Text;
string SN2 = listView2.Items[i].SubItems[j+1].Text;
string SN3 = listView2.Items[i].SubItems[j+2].Text;
string SN4 = listView2.Items[i].SubItems[j+3].Text;
try
{
string Command_insert = String.Format("insert into 正算结果(序号,点名,X,Y) values('{0}','{1}','{2}','{3}')", SN1, SN2, SN3, SN4);
SqlCommand insertcmd = new SqlCommand(Command_insert, conn);
MessageBox.Show("存储数据成功!");
}
catch (Exception ee)
{
MessageBox.Show("存储数据失败!" + ee.ToString());
}
}
``
`

如图,代码里运行时存入一行就会提示一次存储成功,我这里提示了两次但是数据库里却没有程序更新
救救孩子吧
1.你只创建了insertcmd,并没有调用insertcmd.ExcuteNonQuery()
2.建议在循环外面创建一个SqlCommand,然后拼接多个插入语句的字符串(用分号隔开)再赋值给insertcmd.CommandText,然后在循环外面调用insertcmd.ExcuteNonQuery()
private void button6_Click(object sender, EventArgs e)
{
try
{
using (SqlConnection conn = new SqlConnection(ConStr))
{
conn.Open();
using (SqlCommand insertcmd = new SqlCommand())
{
StringBuilder cmdText = new StringBuilder();
for (int i = 0; i < listView2.Items.Count; i++)
{
string SN1 = listView2.Items[i].SubItems[0].Text;
string SN2 = listView2.Items[i].SubItems[1].Text;
string SN3 = listView2.Items[i].SubItems[2].Text;
string SN4 = listView2.Items[i].SubItems[3].Text;
cmdText.AppendFormat("insert into 正算结果(序号,点名,X,Y) values('{0}','{1}','{2}','{3}');", SN1, SN2, SN3, SN4);
}
insertcmd.CommandText = cmdText.ToString();
insertcmd.Connection = conn;
int result = insertcmd.ExecuteNonQuery();
conn.Close();
MessageBox.Show("存储数据成功!");
}
}
}
catch (Exception ee)
{
MessageBox.Show("存储数据失败!" + ee.ToString());
}
}