まず第一に、常にパラメーター化されたクエリを使用する必要があります。この種の文字列連結は、SQL インジェクション攻撃に対してオープンです。
このようにしてみてください。
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();
}
}
ティムが指摘した代替手段として、コマンドを実行した後にメソッドSqlCommand
を使用する必要があるすべての値に同じものを再利用できます。SqlParameterCollection.Clear()
お気に入り;
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();
}
}