我用vs 2005 c#开发Web程序。数据库采用Sql Server 2000自带的Northwind数据库,数据表采用Customers,该表的CompanyName字段是不允许为空的。用以下代码编辑记录时会报错:'无法将 NULL 值插入列 'CompanyName',表 'Northwind.dbo.Customers';该列不允许空值。UPDATE 失败。'请各位帮看一下:<asp:SqlDataSource ID="SqlDataSource1" Runat="server"
             SelectCommand="SELECT * FROM [Customers]"
             ConnectionString="<%$ ConnectionStrings:AppConnectionString %>"
             DataSourceMode="DataSet"
             UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName,
                  [ContactName] = @ContactName, [ContactTitle] = @ContactTitle,
                  [Address] = @Address, [City] = @City, [Region] = @Region, 
                  [PostalCode] = @PostalCode, [Country] = @Country, [Phone] = @Phone,
                  [Fax] = @Fax WHERE [CustomerID] = @CustomerID">
             <UpdateParameters>
                 <asp:Parameter Type="String" Name="CompanyName"></asp:Parameter>
                 <asp:Parameter Type="String" Name="ContactName"></asp:Parameter>
                 <asp:Parameter Type="String" Name="ContactTitle"></asp:Parameter>
                 <asp:Parameter Type="String" Name="Address"></asp:Parameter>
                 <asp:Parameter Type="String" Name="City"></asp:Parameter>
                 <asp:Parameter Type="String" Name="Region"></asp:Parameter>
                 <asp:Parameter Type="String" Name="PostalCode"></asp:Parameter>
                 <asp:Parameter Type="String" Name="Country"></asp:Parameter>
                 <asp:Parameter Type="String" Name="Phone"></asp:Parameter>
                 <asp:Parameter Type="String" Name="Fax"></asp:Parameter>
                 <asp:Parameter Type="String" Name="CustomerID"></asp:Parameter>
             </UpdateParameters>
        </asp:SqlDataSource>    <asp:GridView ID="GridView1" Runat="server" DataSourceID="SqlDataSource1"
             DataKeyNames="CustomerID" AutoGenerateColumns="False"
             AllowSorting="True" AllowPaging="True"
             AutoGenerateEditButton="true">
</asp:GridView>

解决方案 »

  1.   

    在数据库找到表Customers,将companyName设置允许为空
      

  2.   

    Customer表的Company字段本身就要求是不允许为空的。在这种情况下如何修改代码呢?
      

  3.   

    不要插入这个字段的植  把这个字段设置为 identity(1,1)自增长型
      

  4.   

    在插入这个字段之前判断一下 @CompanyName 是否为空,为空就不再update 或自动 填写默认植