運行.NET 4.0版時,我試圖插入到使用SqlDataSource.Insert()的表中我得到「無法將值NULL插入列'firstName'...」ASP.NET - 」無法將值NULL插入列'firstName'。「。」當試圖執行SQL INSERT
該標記是由sql嚮導生成的,除了我添加的「DefaultValue =」僅用於測試。 因此,使用DefaultValue =就地,INSERT可以工作,但刪除後我會收到錯誤消息。 SQL服務器抱怨的列是表的PK,因此不能爲空,但運行調試器時,在調用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="[email protected]"/>
</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: }
在表中,您可能已經給列「firstName」賦予非null約束。如果您有SqlServerManagementStudio嘗試連接數據庫,並使用數據(您正在使用此示例提供的)激發插入查詢,並查看結果。 – 2012-09-20 14:27:28