Я не уверен, в чем проблема, но мой код выглядит так:
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".
Причина, по которой я пишу такое утверждение, заключается в том, что я собираюсь использовать несколько других операторов if, которые добавят в SQLtext
РЕДАКТИРОВАТЬ: Вот полная часть кода после оператора if, так как мой синтаксис не имеет смысла без других переменных. Это исправлено после того, что предложил Йелтон, но я все еще получаю ту же ошибку.
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);