Вставьте DateTime из ASP.NET в сохраненный процесс - PullRequest
0 голосов
/ 27 марта 2011

Я пытаюсь вставить штамп даты и времени из приложения asp.net в базу данных, но продолжаю получать сообщение об ошибке ::

Столбец "W_Date" не может быть изменен потому что это либо вычисляемый столбец или является результатом оператора UNION.

Может кто-нибудь пролить свет на это. Кроме того, я автоматизирую дату и время в моем asp в метке, а затем извлекаю текст для вставки sql с помощью следующего кода.

lblDate.Text = DateTime.Now.ToString();

Это правильно?

Ниже мой сохраненный код Proc:

@date date
AS
BEGIN
  INSERT INTO tbl_Wiki(W_Title, C_ID, W_Date)
  VALUES (@title, @c_ID, GETDATE())
END

Ответы [ 2 ]

1 голос
/ 27 марта 2011

Не похоже, что с вашим кодом ASP.NET что-то не так, если предположить, что W_Title - это правильное имя столбца. Достаточно ли у вас контроля над схемой, чтобы увидеть, является ли W_Title вычисляемым столбцом или нет?

Кроме того, похоже, что вы передаете "date" в качестве параметра для вашего процесса, но вы не используете его в операторе INSERT. Если W_Date является вычисляемым столбцом, который всегда будет текущей датой, вы должны удалить параметр W_Date в своем операторе вставки.

0 голосов
/ 27 марта 2011

Проверьте определение столбца W_Date в таблице tbl_Wiki.Вероятно, это вычисляемый столбец, что означает, что вы не можете его изменить.

Вы можете использовать этот запрос, чтобы проверить, вычисляется ли столбец:

select  is_computed 
from    sys.columns 
where   object_id = object_id('tbl_Wiki') 
        and name = 'W_Date'

Пример вычисляемого столбца:

create table Sample (a int, b int, c as sqrt(a*a+b+b))

Здесь c вычисляется при каждом извлечении строки.Вы не можете отменить расчет, указав значение во время insert или update.

...