コメントしたものを見ると、ユーザー入力を直接クエリに追加することで簡単に動作させることができますが、パラメータ化しようとすると値のSqlCommmandパラメータがUPDATEステートメント(C#、MVC)に追加されない
は、このコードは
は、テーブル変数@formTable
定義しなければならないエラーを投げているが、問題は、値のいずれも追加されていないです...パラメータに追加されています、テーブル変数だけでなく、テーブル名変数に静的テキストを配置する)。
このプロジェクトでは、完全に機能するような構造のinsert文がたくさんあります。私はここで間違って何をしていますか?
string constr = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
//string query = "UPDATE " + s.formTable + " SET " + s.column + " = '" + s.cellValue + "' WHERE MasterID = '" + s.id + "'";
string query = "UPDATE @formTable SET @column = @cellValue WHERE MasterID = @id;";
using (SqlCommand cmd = new SqlCommand(query))
{
//SqlParameter param = new SqlParameter("@formTable", s.formTable);
//cmd.Parameters.Add(param);
cmd.Parameters.AddWithValue("@formTable", s.formTable);
cmd.Parameters.AddWithValue("@column", s.column);
cmd.Parameters.AddWithValue("@cellValue", s.cellValue.ToString());
cmd.Parameters.AddWithValue("@id", s.id.ToString());
cmd.Connection = con;
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}