0

DataRow列の検証を実行できません。バックエンドの列は許可して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

dr["CellNumber"] の代わりに txtCellNo.Text の内容を確認する方が理にかなっています。

于 2013-02-03T14:30:01.940 に答える