我编写了一个修改access数据库的程序,但是总是提示错误,错误命令如下:
 未处理OleDbException     至少一个参数没有被指定值。希望大家能告诉我是什么问题

解决方案 »

  1.   

    string strConnect = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + "\\SAS.mdb";
                        OleDbConnection conConnection = new OleDbConnection(strConnect);
                        string strCommand = "SELECT * FROM 信息";
                        
                        OleDbCommand cmd = new OleDbCommand(strCommand, conConnection);                    OleDbDataAdapter mycommand = new OleDbDataAdapter(strCommand, conConnection);
                        mycommand.SelectCommand  = cmd;
                        OleDbCommandBuilder OleDbCommandBuilder = new OleDbCommandBuilder(mycommand);
                         
                    try
                        {
                        conConnection.Open();
                        DataSet mydata = new DataSet();
                        
                        mycommand.Fill(mydata, "信息");                    for (int i = 0; i < mydata.Tables["信息"].Rows.Count - 1; i++)
                        {
                            DataRow mydataRow = mydata.Tables["信息"].Rows[i];
                            if (mydataRow[1].ToString () == uselistView1.SelectedItems[0].SubItems[0].Text )
                            {
                                switch (slotID)
                                {
                                    case 1: mydataRow["1"] = editBox.Text; break;
                                    case 2: mydataRow["2"] = editBox.Text; break;
                                    case 3: mydataRow["3"] = editBox.Text; break;
                                    case 4: mydataRow["4"] = editBox.Text; break;
                                }
                                break;
                            }
                        }
                        mycommand.ContinueUpdateOnError = true;
                        mycommand.Update (mydata ,"信息");
                       
                    }
                    catch (Exception ex)
                    { MessageBox.Show(ex.ToString()); }
                    finally
                    { conConnection.Close(); }
    加了个mycommand.ContinueUpdateOnError = true;
    编辑可以通过,但是access里的数据不改变
      

  2.   

    提示的错误信息是:
    System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。   在 System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)   在 System.Data.Common.DbDataAdapter.UpdatedRowStatus(RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo[] batchCommands, Int32 commandCount)   在 System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows, DataTableMapping tableMapping)   在 System.Data.Common.DbDataAdapter.UpdateFromDataTable(DataTable dataTable, DataTableMapping tableMapping)   在 System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String srcTable)   在 WindowsApplication1.Form1.creadit_KeyPress(Object sender, KeyPressEventArgs e) 位置 E:\project\test3\WindowsApplication1\Form1.cs:行号 1379
      

  3.   


    OleDbDataAdapter mycommand = new OleDbDataAdapter(strCommand, conConnection);
    mycommand.SelectCommand  = cmd;
    改成
    OleDbDataAdapter myAdpter = new OleDbDataAdapter(cmd);
      

  4.   

    谢谢liaomu(天下乌贼) ,但还是不行,还是那个异常。
      

  5.   

    OleDbDataAdapter mycommand = new OleDbDataAdapter(strCommand, conConnection);与
                        mycommand.SelectCommand  = cmd;
    重复,删除第二个;
      

  6.   

    在 WindowsApplication1.Form1.creadit_KeyPress(Object sender, KeyPressEventArgs e) 位置 E:\project\test3\WindowsApplication1\Form1.cs:***** 行号 1379 ****** 看看这一行。
      

  7.   

    就是这行mycommand.Update (mydata ,"信息");
    是不是我的update少参数了?
      

  8.   


    OleDbCommandBuilder OleDbCommandBuilder = new OleDbCommandBuilder(mycommand);
    改成
    OleDbCommandBuilder cb1;在mycommand.Update (mydata ,"信息");处加上:
    cb1= new OleDbCommandBuilder(mycommand);