問題が何であるかはわかりませんが、私のコードは次のようになります。
function() {
string sqltext2;
sqltext2 = "INSERT into myTable";
SqlCommand myCommand2 = new SqlCommand(sqltext2, MyConnection2);
if (cond1) {
sqltext2 = sqltext2 + "SELECT" + "@initOwnerFirstName" + "," + "@ownerFirstName" + "UNION ALL ";
SqlParameter param = new SqlParameter();
param.ParameterName = "@initOwnerFirstName";
param.Value = initOwnerFirstName;
SqlParameter param2 = new SqlParameter();
param2.ParameterName = "@ownerFirstName";
param2.Value = owner.FirstName;
myCommand2.Parameters.Add(param);
myCommand2.Parameters.Add(param2);
私はパラメーター化された SQL をまったく使用していませんが、構文は私には正しいようです。私が取得し続けるエラーは次のとおりです。
スカラー変数「@initOwnerFirstName」を宣言する必要があります。私がそのようなステートメントを書いている理由は、SQLtext に追加する他の複数の if ステートメントを用意するつもりだからです。
編集: 私の構文は他の変数なしではほとんど意味がないため、if ステートメントの後のコード全体を次に示します。これは JYelton が提案した後にクリーンアップされましたが、それでも同じエラーが発生します。
sqltext2 = sqltext2 + "SELECT" + "'" + currentUserId2 + "'," + "'" + owner.Id.ToString() + "'," + "'" + DateTime.Now + "'," + "'FirstName', @initOwnerFirstName, @ownerFirstName UNION ALL ";
myCommand2.Parameters.AddWithValue("initOwnerFirstName", initOwner.FirstName);
myCommand2.Parameters.AddWithValue("OwnerFirstName", owner.FirstName);