0
  1. 在 btnSave_Click 事件中处理了 NoNullAllowedException
  2. 我在 SQL 2005 中有四列 DealerId、名称、地址、电话号码
  3. 如果我单击“保存”按钮,我会收到此错误:“DealerID”列不允许空值

错误信息图片:

    public partial class frmDealerForm : Form
    {
    DataTable t;
    DataRow r;

    public frmDealerForm()
    {
        InitializeComponent();           
    } 

    private void btnSave_Click(object sender, EventArgs e)
    {
        t = kalliskaBillingDataSet.Tables["DealerDetail"];
        r = t.NewRow();
        r[0] = txtdealerID.Text;
        r[1] = txtname.Text;
        r[2] = txtaddress.Text;
        r[3] = txtphoneno.Text;
     //Column 'DealerID' does not allow nulls//
        t.Rows.Add(r);
        dealerDetailTableAdapter.Update(kalliskaBillingDataSet);
        txtdealerID.Text = System.Convert.ToString(r[0]);
        MessageBox.Show("Data Saved", "DealerDetail", MessageBoxButtons.OK,  MessageBoxIcon.Information);

    }
 }         
4

2 回答 2

0

您可以尝试改用以下代码:

    r[0] = txtdealerID.Text ?? String.Empty;
    r[1] = txtname.Text ?? String.Empty;
    r[2] = txtaddress.Text ?? String.Empty;
    r[3] = txtphoneno.Text ?? String.Empty;

这将确保它不为空。

另外,请确保索引正确。0,0,1,2 似乎是错误的。

此外,如果您使用 ORM(Linq to SQL,Entity Framework),请确保它已更新。

于 2012-10-26T09:21:01.043 回答
0

在您的数据表上,DealerId 列设置为属性

DealerId.AllowDBNull = False.这就是您收到该错误的原因。

您可能正在为 r[0] 传递一个空值,当设置了上述属性时,您不能这样做。

于 2012-10-26T09:24:39.203 回答