gpt4 book ai didi

c# - SqlCommand INSERT INTO 从 datagridview 到 SQL DB 表

转载 作者:太空宇宙 更新时间:2023-11-03 19:14:55 25 4
gpt4 key购买 nike

我在下面有这段代码,它应该将数据从 datagridview dtg_ksluzby 保存到 sql 表 KLISLUZ,但它说:

Embedded statement cannot be declarition or labeled statemnt.

for(int i=0; i< dtg_ksluzby.Rows.Count;i++)
SqlCommand prikaz2 = new SqlCommand("INSERT INTO klisluz'" + dtg_ksluzby.Rows[i].Cells["text"].Value +"', '" + dtg_ksluzby.Rows[i].Cells["pocet"].Value +"'",spojeni);
prikaz2.ExecuteNonQuery();

最佳答案

首先,您应该始终使用parameterized queries , 这种字符串连接对 SQL Injection 开放攻击。

这样试试;

for(int i=0; i< dtg_ksluzby.Rows.Count;i++)
{
using(SqlCommand prikaz2 = new SqlCommand("INSERT INTO klisluz VALUES(@p1, @p2)",spojeni))
{
prikaz2.Parameters.AddWithValue("@p1", dtg_ksluzby.Rows[i].Cells["text"].Value);
prikaz2.Parameters.AddWithValue("@p2", dtg_ksluzby.Rows[i].Cells["pocet"].Value);
prikaz2.ExecuteNonQuery();
}
}

作为替代,蒂姆pointed ,您可以为您只需要使用 SqlParameterCollection.Clear() 的所有值重用相同的 SqlCommand执行命令后的方法。

喜欢;

using(SqlCommand prikaz2 = new SqlCommand("INSERT INTO klisluz VALUES(@p1, @p2)",spojeni))
{
for(int i=0; i< dtg_ksluzby.Rows.Count;i++)
{
prikaz2.Parameters.AddWithValue("@p1", dtg_ksluzby.Rows[i].Cells["text"].Value);
prikaz2.Parameters.AddWithValue("@p2", dtg_ksluzby.Rows[i].Cells["pocet"].Value);
prikaz2.ExecuteNonQuery();
prikaz2.Parameters.Clear();
}
}

关于c# - SqlCommand INSERT INTO 从 datagridview 到 SQL DB 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17698884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com