したがって、これが可能かどうか、または推奨されるかどうかはわかりませんが、ユーザーが動的に構築できる Web サービスで更新コマンドを作成する方法を見つけようとしていました。基本的に、目標は、x 個の列を持つテーブルがあり、更新されていない列に null または既存の値を渡すことなく、ユーザーが任意の数の列を更新できるようにすることです。たとえば、ある人が走りたいと思うかもしれません
UPDATE calendar_table
SET title = 'Some new Title'
WHERE (id = 12344)
そして、別のユーザーが代わりにこのアクションを実行したい場合があります
UPDATE calendar_table
SET title = 'New Event', type = 'Meeting', note = 'Meet with new client'
WHERE (id = 12344)
以下は私が使用しようとしていたものですが、「WHERE」の近くに問題があるという例外が発生し続けているため、更新文字列を処理しようとしている方法に何かがあると信じています。
String MyConnStr = ConfigurationManager.ConnectionStrings["MainConnStr"].ConnectionString;
SqlConnection connection = new SqlConnection(MyConnStr);
SqlCommand Query = new SqlCommand("UPDATE dbo.calendar_table " +
"SET @newText " +
"WHERE (id = @appointmentID)", connection);
Query.Parameters.Add("@newText", SqlDbType.VarChar).Value = note;
Query.Parameters.Add("@appointmentID", SqlDbType.VarChar).Value = appointment;
Query.CommandType = CommandType.Text;
try
{
connection.Open();
Query.ExecuteNonQuery();
}
catch (Exception ex)
{
Debug.WriteLine(ex);
}
finally
{
connection.Close();
Query.Dispose();
}
私が考えることができる唯一の他のオプションは、可能なすべての値を使用してWebサービスを作成し、値とともに変更されていない既存の値を渡すことです。