【发布时间】:2015-08-24 21:24:33
【问题描述】:
传递的参数是好的。我什至在 SQL 中运行查询以查看我是否关闭,但它更新了数据库。但是当我在调试时运行我的程序时,它会运行查询,但不会更新我的数据库。
public void UpdateRowValueQuery<T>(T table, string columnName,
string columnValue, string whereColumn, string whereValue,
Config config)
{
// Store the output query
StringBuilder query = new StringBuilder();
// Insert query that adds the database name
// and table name passed through
query.Append("UPDATE ");
query.Append(config.DatabaseName);
query.Append(".dbo.");
query.Append(typeof(T).Name);
query.Append(" SET ");
query.Append("@columnName");
query.Append(" = ");
query.Append("@columnValue");
query.Append(" WHERE ");
query.Append("@whereColumn");
query.Append(" = ");
query.Append("@whereValue");
// Execute the update
using (SqlConnection conn = DBConnection.GetSqlConnection())
{
using (SqlCommand cmd = new SqlCommand(query.ToString(), conn))
{
cmd.Parameters.Add(new SqlParameter("@columnName", columnName));
cmd.Parameters.Add(new SqlParameter("@columnValue", columnValue));
cmd.Parameters.Add(new SqlParameter("@whereColumn", whereColumn));
cmd.Parameters.Add(new SqlParameter("@whereValue", whereValue));
cmd.ExecuteNonQuery();
}
}
}
【问题讨论】:
-
请显示您的连接字符串。最可能的原因是您没有更新您认为正在更新的数据库。
-
同here
-
不能使用参数来表示列名(数据表也不行)
-
-
我没有看到 conn.open?
标签: c# sql-server ado.net