.NET バージョン 4.0 を実行して、SqlDataSource.Insert() を使用してテーブルに INSERT しようとしています。「列 'firstName' に値 NULL を挿入できません...」
マークアップは、テストのために追加した "DefaultValue=" を除いて、SQL ウィザードによって生成されました。そのため、DefaultValue= を指定すると INSERT は機能しますが、これを削除するとエラー メッセージが表示されます。SQL サーバーが不平を言っている列はテーブルの PK であるため、null 値を許容することはできませんが、デバッガーを実行すると、フィールドは SqlDataSource.Insert() への呼び出しの前に入力されます。
私が間違っていることはありますか?
ここにマークアップがあります:-
<h2>
<asp:Label ID="PageTitle" runat="server"></asp:Label>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ApplicationServices %>"
DeleteCommand="DELETE FROM [profiles] WHERE [firstName] = @firstName"
InsertCommand="INSERT INTO [profiles] ([firstName], [lastName], [dateOfBirth], [email]) VALUES (@firstName, @lastName, @dateOfBirth, @email)"
SelectCommand="SELECT * FROM [profiles] WHERE ([firstName] = @firstName)"
UpdateCommand="UPDATE [profiles] SET [lastName] = @lastName, [dateOfBirth] = @dateOfBirth, [email] = @email WHERE [firstName] = @firstName">
<DeleteParameters>
<asp:Parameter Name="firstName" Type="String" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="firstName" Type="String" DefaultValue="Bri"/>
<asp:Parameter Name="lastName" Type="String" DefaultValue="Moss"/>
<asp:Parameter DbType="Date" Name="dateOfBirth" DefaultValue="13/04/1961"/>
<asp:Parameter Name="email" Type="String" DefaultValue="bri@hotmail.com"/>
</InsertParameters>
<SelectParameters>
<asp:Parameter DefaultValue="Ken" Name="firstName" Type="String" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="lastName" Type="String" />
<asp:Parameter DbType="Date" Name="dateOfBirth" />
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="firstName" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
</h2>
これは SqlDataSource.Insert() への呼び出しです。. .
protected void ProfileSubmit_Click(object sender, EventArgs e)
{
Page.Validate();
if (Page.IsValid)
{
SqlDataSource1.Insert();
}
}
エラーメッセージは次のとおりです:-
Server Error in '/' Application.
--------------------------------------------------------------------------------
Cannot insert the value NULL into column 'firstName', table 'C:\USERS\KATHARINA\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\HEALTHTRACK\HEALTHTRACK\APP_DATA\ASPNETDB.MDF.dbo.profiles'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Cannot insert the value NULL into column 'firstName', table 'C:\USERS\KATHARINA\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\HEALTHTRACK\HEALTHTRACK\APP_DATA\ASPNETDB.MDF.dbo.profiles'; column does not allow nulls. INSERT fails.
The statement has been terminated.
Source Error:
Line 21: if (Page.IsValid)
Line 22: {
Line 23: SqlDataSource1.Insert();
Line 24: }
Line 25: }