【发布时间】:2014-11-20 21:33:19
【问题描述】:
我正在尝试使用新值更新一行中的列。新值在一个变量中,并且该值包含一个新行。 该方法将需要更改的列名和值作为字典接收,并创建动态更新命令。
该代码适用于表中的任何其他行,但是当涉及换行时,并且 SQL 错误说:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在附近使用的正确语法
var valueStr = "";
for (var i = 0; i < srcRow.Count; i++)
{
valueStr += string.Format("{0} = ?prm{1}", srcRow.Keys.ElementAt(i),i);
if (i < srcRow.Count - 1)
valueStr += ", ";
var query = string.Format("UPDATE {0} SET {1} WHERE {2}", table, valueStr, pkey);
try
{
using (var cmd = destConn.CreateCommand())
{
cmd.CommandText = query;
for (int i = 0; i < srcRow.Count; i++)
{
cmd.Parameters.AddWithValue("?prm" + i.ToString(),srcRow.Values.ElementAt(i));
}
cmd.ExecuteNonQuery();
}
}
谢谢 新山
【问题讨论】:
-
变量
query的值是多少?