我正在使用insert语句,其中需要插入3个值来从gridview中获取数据并将其保存在表中但是"关键字参数值正在逐渐更新,就像数据库中的@Keyword一样。但其他价值观正常。
以下是代码
using (SqlCommand com = new SqlCommand("INSERT INTO PositionsTable (Id,Keyword,Position) VALUES (@Id,'@Keyword',@Position)", con))
{
com.Parameters.AddWithValue("@Keyword", SqlDbType.VarChar);
com.Parameters.AddWithValue("@Position", SqlDbType.Int);
com.Parameters.AddWithValue("@Id", SqlDbType.Int);
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
string keywordCell = dataGridView1.Rows[i].Cells["Keywords"].Value.ToString();
int positionCell = Convert.ToInt16(dataGridView1.Rows[i].Cells["Position"].Value);
com.Parameters["@Keyword"].Value = keywordCell;
com.Parameters["@Position"].Value = positionCell;
com.Parameters["@Id"].Value = count;
com.ExecuteNonQuery();
}
}
我在调试时测试过,keywordCell变量成功地从gridview获取了像positionCell这样的值,但它得到了更新&#34; @ Keyword&#34;在数据库中positionCell正确更新。
你能指出我出错的地方吗?
答案 0 :(得分:3)
你在SQL语句
中引用了关键字更改
"INSERT INTO PositionsTable (Id,Keyword,Position) VALUES (@Id,'@Keyword',@Position)"
到
"INSERT INTO PositionsTable (Id,Keyword,Position) VALUES (@Id,@Keyword,@Position)"
答案 1 :(得分:1)
'@Keyword'
是错误的。
INSERT INTO PositionsTable (Id,Keyword,Position) VALUES (@Id, @Keyword, @Position)"