sql = "select * from line";
myCommand = new OleDbCommand(sql,conn);
myAd.SelectCommand = myCommand;
OleDbCommandBuilder lineCb = new OleDbCommandBuilder(myAd);
//将读取结果填充如数据集中
         myAd.Fill(dataSet1,"line");
         dataGrid1.SetDataBinding(dataSet1,"line");改在sql = "select * from line";
myCommand = new OleDbCommand(sql,conn);
myAd.SelectCommand = myCommand;
OleDbCommandBuilder lineCb = new OleDbCommandBuilder(myAd);
//将读取结果填充如数据集中
DataSet ds = new DataSet();
         myAd.Fill(ds,"line");
         dataGrid1.SetDataBinding(ds,"line");试试

解决方案 »

  1.   

    注意在你dataSet1.Clear();之前,你的dataSet1里放的是什么数据??
    Clear只能清除数据,原有的表结构是不会清除的
      

  2.   

    DataSet1.Clear()只能清除数据DataSet ds = new DataSet();
    myAd.Fill(ds,"line");
      

  3.   

    按照上述大人的意见改过了,可是现在错误到了
    staAd.Upadte(dataSet1,"line")报 insert into 语句错误!
      

  4.   

    robin0925(棱石):字段怎么看?我想把其commandtext调出来看看,可是报错是空指针,可能根本就没有建立insertCommand,但是同样的语句在程序的其他地方使用则一点问题都没有啊
      

  5.   

    请问:执行完 OleDbCommandBuilder lineCb = new OleDbCommandBuilder(myAd) 以后,myAd.InsertCommand.CommandText是不是就应该有值了??
    我的执行后myAd.InsertCommand好像是为空