NoNullAllowedException是在btnSave_Click中处理的

时间:2012-10-26 09:16:45

标签: c# c#-4.0

  1. NoNullAllowedException在btnSave_Click事件
  2. 中处理
  3. 我在SQL 2005中有四列DealerId,Name,Address,Phoneno
  4. 如果我点击保存按钮,我会收到此错误:列'DealerID'不允许空值
  5. 错误消息图片:

        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);
    
        }
     }         
    

2 个答案:

答案 0 :(得分: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),请确保它已更新。

答案 1 :(得分:0)

在您的数据表中,DealerId列设置了属性

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

你可能正在为r [0]传递一个空值,当设置了上述属性时你就无法做到这一点。