0
  1. NoNullAllowedExceptionはbtnSave_Clickイベントで処理されました
  2. SQL 2005には、DealerId、Name、Address、Phonenoの4つの列があります。
  3. [保存]ボタンをクリックすると、次のエラーが発生します:列'DealerID'はnullを許可しません

エラーメッセージ画像:

    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;

それはそれがnullでないことを確認します。

また、インデックスが正しいことを確認してください。0,0,1,2 は間違っているようです。

また、ORM (Linq to SQL、Entity Framework) を使用している場合は、それが更新されていることを確認してください。

于 2012-10-26T09:21:01.043 に答える
0

Datatable では、DealerId 列にプロパティが設定されています

DealerId.AllowDBNull = False.これが、そのエラーが発生する理由です。

上記のプロパティが設定されている場合、r[0] に null 値を渡すことはできません。

于 2012-10-26T09:24:39.203 に答える