2012-05-25 6 views
1

Вот мой SQL заявление:Обновление в базе данных проливает SqlException

UPDATE InboxItem 
SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, 
    Memo = "", InboxId = @4, VATId = @5 
WHERE Id = @6 

Это бросает SqlException, говоря, что

Объект или имя столбца отсутствует или пуст. Для операторов SELECT INTO убедитесь, что в каждом столбце указано имя. Для других операторов посмотрите для пустых имен псевдонимов. Псевдонимы, определенные как \ "\" или [], недопустимы. Измените псевдоним на допустимое имя.

Я думаю, что знаю, в чем проблема. Если я придаю значение Memo, все будет в порядке. Тем не менее, я иногда хочу, чтобы memo была пустой строкой. Как это сделать?

+0

@marc_s MS Sql Server –

+1

запрос изменения этого 'Memo = @ 7' и в SQL PARAMATERS отправить String.Empty для @ 7 –

ответ

5

Использовать '' вместо "". Также убедитесь, что ваш вход экранирован правильно (возможно, одна из строк имеет запятую, которая не отображается).

+0

Это было его :) TNX. –

+1

Иногда это мелочи. ;) – qJake

1
var sb = new StringBuilder();    
sb.Append("UPDATE InboxItem "); 
sb.Append("SET OrderId = @0, Item = @1, Quantity = @2, Price = @3, "); 
sb.Append("Memo = @7, InboxId = @4, VATId = @5 "); 
sb.Append("WHERE Id = @6"); 
var cm = new SqlCommand(sb.ToString()); 
cm.CommandType = System.Data.CommandType.Text; 
cm.Parameters.AddWithValue("@1", Convert.ToInt16("OrderValue")); 
//and so on