0

无法对DataRow列执行验证。后端的列是 allowed null,但仍在抛出异常。当我尝试使用其中的null值进行保存时,cellNumber.Text它不应该引发异常,我尝试使用 if 语句进行验证,但也没有成功。请帮忙。

private void btnSave_Click(object sender, EventArgs e)
{
    DataRow dr = dt.NewRow();
    dr["FirstName"] = txtFirstName.Text;
    dr["LastName"] = txtLastName.Text;
    dr["Shirt"] = txtShirt.Text;
    dr["Pant"] = txtPant.Text;
    if (dr.IsNull("CellNumber"))
    {
        MessageBox.Show("Please enter Cell number");
    }
    else
    {
        dr["CellNumber"] = txtCellNo.Text; //Argument exception is thrown here
    }
    dr["DueDate"] = txtDueDate.Text;
    dr["Date"] = txtDate.Text;
    dt.Rows.Add(dr);

    try
    {
        da.Update(ds, "Measurement");
    }
    catch (DBConcurrencyException ex)
    {
        MessageBox.Show(ex.Message);
        dt.Clear();
        da.Fill(ds, "Measurement");
    }
    finally 
    { 
        MessageBox.Show("Success");
    }
}
4

1 回答 1

0

你可能检查错了。你有这个:

if (dr.IsNull("CellNumber"))
{
    MessageBox.Show("Please enter Cell number");
}
else
{
    dr["CellNumber"] = txtCellNo.Text; 
}
dr["CellNumber"] = txtCellNo.Text;//Argument exception is thrown here

检查 txtCellNo.Text 的内容而不是 dr["CellNumber"] 会更有意义。

于 2013-02-03T14:30:01.940 回答