我是用C#来编写的,调试时总是提示insert into语句错误。

解决方案 »

  1.   

    insert into 的时候不对关键字段赋值,然后再写个SELECT语句就能得到你想要的了
      

  2.   

    其实很简单,access自增加的字段,其max(id)为最后增加的一个.
    如果你不考虑在你insert into table时,此瞬间又有其它用户插入了记录, 那么max(id)就是返回的值.
    而且考虑到你用的access,应该不会有多用户操作
      

  3.   

    insert into 的时候不对关键字段赋值
      

  4.   

    以上几位始终没有解决问题。
    自己后来看MSDN懂了,insert语句不要加入ID字段,返回自动生成ID要用到RowUpdated事件.
    public void uporder(Object src, System.Web.UI.WebControls.CommandEventArgs e){
    int subi=0;
    recalculate();
    DateTime odate=System.DateTime.Now;
    string strdate=odate.Date.ToString("yyyy-MM-dd");
    string uid=Session["userid"].ToString();
    string ststxt="待接受";
    OleDbDataAdapter catDA = new OleDbDataAdapter("SELECT * from jorder ", MyConn);
        catDA.InsertCommand = new OleDbCommand("INSERT INTO jorder(sts,userid,mqty,odate,memtxt) Values(@sts,@userid,@mqty,@odate,@memtxt)", MyConn);
        catDA.InsertCommand.CommandType = CommandType.Text;
        catDA.InsertCommand.Parameters.Add("@sts", OleDbType.Char, 5, "sts");
        catDA.InsertCommand.Parameters.Add("@userid", OleDbType.Char, 10, "userid");
        catDA.InsertCommand.Parameters.Add("@mqty", OleDbType.Integer, 5, "mqty");
        catDA.InsertCommand.Parameters.Add("@odate", OleDbType.Date, 8, "odate");
        catDA.InsertCommand.Parameters.Add("@memtxt", OleDbType.Char, 255, "memtxt");
    catDA.RowUpdated += new OleDbRowUpdatedEventHandler(OnRowUpdated);

    DataSet catDS = new DataSet();
    catDA.Fill(catDS,"jorder");
    DataRow newRow = catDS.Tables["jorder"].NewRow();
    newRow["sts"] = ststxt;
    newRow["userid"] = uid;
    newRow["mqty"] = total;
    newRow["odate"] = odate.Date;
    newRow["memtxt"] = memtxt.Text;
    catDS.Tables["jorder"].Rows.Add(newRow);
    catDA.Update(catDS, "jorder");
    foreach(DataRow myRow in dt.Rows){
    myRow["oid"]= orderid;
    }
    string strSel = "select * from olist";
    OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strSel,MyConn);
    OleDbCommandBuilder custCB = new OleDbCommandBuilder(MyAdapter);
    DataSet ds = new DataSet();
    MyAdapter.Fill(ds,"olist");
    foreach(DataRow myRow in dt.Rows){
    ds.Tables["olist"].ImportRow(dt.Rows[subi]);
    subi++;
    }
    subi=0;
    subi=MyAdapter.Update(ds,"olist");
    if(subi>0){
    dt.Clear();
    ArrayList addsum = new ArrayList();
    Session["addlist"]=addsum;
    submsg.Text="您的订单已成功提交,谢谢您的支持!";
    dgd.Visible=false;
    }
      }