我实验的目的就是插入数据,并更新到数据库中:
后台代码是这样的:
protected System.Web.UI.WebControls.DataGrid score;
private string Constring;

private void Page_Load(object sender, System.EventArgs e)
{
Constring=String.Format(System.Configuration.ConfigurationSettings.AppSettings["ConnectString"],
System.Web.HttpContext.Current.Request.PhysicalApplicationPath+(System.Configuration.ConfigurationSettings.AppSettings["DbPath"]));
string MyConnString = Constring;
string strSel = "select * from myUsers";

OleDbConnection MyConn = new OleDbConnection(MyConnString);
MyConn.Open();
OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);

OleDbCommandBuilder custCB = new OleDbCommandBuilder(MyAdapter);DataSet ds = new DataSet();
MyAdapter.Fill(ds,"myUsers");
MyConn.Close();
DataRow dr = ds.Tables["myUsers"].NewRow();dr["Name"] = "loveNet";
dr["PassWord"] = "aaaaaa";
dr["Question"] = "aaaaaa";
dr["GetPassWord"] = "aaaaaa";
dr["Sex"] = "男";
dr["QQNumber"] = 66666;
ds.Tables["myUsers"].Rows.Add(dr);
MyAdapter.Update(ds,"myUsers"); score.DataSource = ds.Tables["myUsers"];
score.DataMember = "myUsers";
score.DataBind();
}
出现的错误是:
“/zgdxjsj”应用程序中的服务器错误。
--------------------------------------------------------------------------------INSERT INTO 语句的语法错误。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误。源错误: 
行 55:  ds.Tables["myUsers"].Rows.Add(dr);
行 56: 
行 57:  MyAdapter.Update(ds,"myUsers"); 
---------------------------------------------------------------------------------------
如果我要是把MyAdapter.Update(ds,"myUsers")去掉,运行好使
可以在DATAGRID上显示出来
但是利用MyAdapter.Update(ds,"myUsers")更新到数据库怎么就出错呢
真是邪门了
大哥指点,好郁闷啊

解决方案 »

  1.   

    你都把MyConn.Close();都关了,当然出错,把这句话移到最后面
      

  2.   

    同意。虽然说dataset可以脱离服务器。但是那只是在select的时候。当你更新和插入删除的时候还是要连接上的。因此需要在最后边才能关闭conn
      

  3.   

    MyConn.Close();这句话移到最后面了,还是同样的错误
      

  4.   

    你的表中有主键字段吗?没有主键字段是不能用OleDbCommandBuilder生成的sql命令来插入或更新数据库的。
      

  5.   

    DataRow dr = ds.Tables["myUsers"].NewRow();
    dr["主键"] = "主键";
    myDataSet.Tables["myUsers"].Rows.Add(dr);
    myDataSet.Tables["myUsers"].AcceptChanges();dr["Question"] = "aaaaaa";
      

  6.   

    张了见识,严重支持 webdiyer(陕北吴旗娃)
      

  7.   


    MyAdapter.InsertCommand=custCB.GetInsertCommand();
    试试