У меня есть gridview, привязанный к sqldatasource. Попытка запустить обновление хранимой процедуры.Ошибка: не удается вставить значение NULL в столбец
я получаю эту ошибку ...
Cannot insert the value NULL into column 'MyFKId', table 'dbo.MyTable';
column does not allow nulls. INSERT fails. The statement has been
terminated.
Я знаю ответ кажется очевидным, что я пытаюсь вставить нуль в столбец, который не позволит. Проблема в том, что я знаю, что добавляю значение в «MyFKId». В моем коде я поставил точку останова и увидел там было значение после того, как эта линия побежала ...
dsMyDataSource.UpdateParameters.Item("MyFKId").DefaultValue = SomeId
SomeId действительно имеет значение. Это не было ошибкой. Как вы думаете, что может быть неправильно? SqlDataSource настроен следующим образом ...
<asp:SqlDataSource ID="dsMyDataSource" runat="server" ConnectionString="xxxxx"
SelectCommand="xxxxx" SelectCommandType="StoredProcedure"
UpdateCommandType="Text"
UpdateCommand=" Execute s_MyStoredProc @MyFKId,[email protected]">
<UpdateParameters>
<asp:Parameter Name="MyFKId" Type="Int32" />
...
</UpdateParameters>
</asp:SqlDataSource>
'Я знаю, что я помещаю значение в« MyFKId »- нет, это не так. Вы просто _think_ вы. SQL Server уверен, что вы этого не сделали. –
Вам нужно будет опубликовать код в 's_MyStoredProc', чтобы получить разумный ответ. –
Когда я устанавливаю точку останова, я вижу, что значение по умолчанию получает значение из переменной SomeId. После этого нет кода, который его корректирует. Где еще я должен проверить? – WebDevGuy