初学者提问:从数据集dataSet插入记录更新数据库,出了问题,大家帮忙看一下 
DataRow newRow;
newRow = dataSet1.Tables["Customers"].NewRow();
newRow["CustomerID"]   = txtCompanyID.Text;
newRow["CompanyName"]  = txtCompanyName.Text;
newRow["ContactName"]  = txtContactName.Text;
newRow["ContactTitle"] = txtContactTitle.Text;
newRow["Address"]      = txtAddress.Text;
newRow["City"]         = txtCity.Text;
newRow["PostalCode"]   = txtZip.Text;
newRow["Phone"]        = txtPhone.Text;
dataSet1.Tables["Customers"].Rows.Add(newRow);
dataAdapter1.Update(dataSet1,"Customers"); 
dataSet1.AcceptChanges( );
运行后,在文本框输入数据,保存,就发生错误:Column 'CustomerID' is constrained to be unique. Value 'jhon' is already present.
注:jhon是我在文本框txtCompanyID输入的字符串

解决方案 »

  1.   

    CustomerID = jhon的数据已经在数据库中存在
      

  2.   

    在执行这一段方法之前要判断:  txtCompanyID.Text;
    的值在数据库字段CustomerID中是否已经存在.
      

  3.   

    txtCompanyID.Text在插入前如果重复了...那不就是违返唯一性吗....
      

  4.   

    如果在数据库里设为自动自增的话...这里的txtCompanyID.Text就不应做为插入项...
      

  5.   

    谢谢大家的回答,我插入的数据并不重复。
    CustomerID字段设为主键,插入运行有错误,但打开数据库发现记录已经被插入表Customers。
    表Customers中CustomerID字段不设为主键,插入记录到数据库没有问题。
      

  6.   

    重复插入主键,
    把你的SqlCommand.CommandText所带的sql加上你的参数数据到查询分析器上执行以下看看,是否能找到问题
      

  7.   

    也是在更新过程中打开SQL Server 2000的事件探测器,跟踪执行的存储过程.
      

  8.   

    会不会是dataset中有重复的值了,调试看一下,如果每次只插入一行数据,新建一个dataset实例