总是莫名其妙的insert 错误。
自己怎么仔细也找不到
用parameter一个一个插入也还是insert错误
各位给点办法吧。。
郁闷阿。

解决方案 »

  1.   

    贴出错误来..这样光说一句,不好找错误的..如果update,insert都出错的话,把你的 ACCESS数据库权限设置为完全..
      

  2.   

    qileroro(虚心则凉,无欲则寂)
    执行的时候看有没有这个文件夹的写权限 还有Access文件是不是正打开着没有关闭
      

  3.   

    一般情况下如果在ACCess中没有写入权限后,就会在对数据库中数据进行操作时只能进行查询操作,其它比如,修改,删除,等等须要进行写操作的就无法进行,比如在修改时会出现“操作须一个可更新的查询”等错,你可以在iis中将access的权限全改成完全控制就对了!
      

  4.   

    1、权限问题2、注意的是Microsoft Access 不支持存储过程或批命令处理
      

  5.   

    发现一个问题。。
    怎么和access字段名有关?
    我一个一个字段insert测试
    最后发现那些不能insert的字段改了access字段名后就可以了例如:存放帐号密码的表的
    password这个字段insert 错误
    同样的插入语句
    把access字段password改掉。改成其他例如test/bgspassword,就可以了。
    大家讲下。。
      

  6.   

    調用它!
    using System;
    using System.Xml;
    using System.Data.OleDb;
    using System.Data;namespace ACS
    {
    /// <summary>
    /// 對數據庫進行更新
    /// </summary>
    /// AIDU數據庫連接
    /// Retrieval 返回查詢Dataset
    /// Translation與數據庫進行交易[Access = true][fail = false]
    /// 

    public class AIDU
    {

    #region 連接失敗返回失敗消息--[Link Ok return null][Link fail return ErrorMessage]
    public string ErrorMsg()
    {
    return sErrorMsg;
    } #endregion #region 設置公共連接對像字串--[ sAcsCon ]
    public string sAcsConString()
    {
    string sConString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="+@"KSZH.mdb";
    // string sConString = "Provider=OraOLEDB.Oracle.1;Password=mes_ks1;Persist Security Info=True;User ID=mes_ks1;Data Source=linux;Extended Properties=";
    return sConString;
    }


    public string sAcsCon
    {
    get{return sAcsConString();}
    }

    #endregion #region 設置公共連接對像--[ Link_cn ] public OleDbConnection Link_cn 
    {
    get{return Acs_cn();}
    } public OleDbConnection Acs_cn()
    {
    OleDbConnection cn = new OleDbConnection(sAcsCon);
    if(cn.State == ConnectionState.Closed)
    {
    cn.Open();
    }
    return cn;
    } #endregion //連接失敗後的返回消息
    private string sErrorMsg ="" ;
    //連接標志變量 [bFlag = true Connection Database Success]
    //[bFlag = false Connection Database unSuccess]
    private bool bFlag = false;

    #region 數據庫連接--[ LINK-TEST ] public bool AIDU_Link()
    {
    OleDbConnection TestCn = new OleDbConnection(sAcsCon);
    //測試數據庫連接
    try
    {
    if(TestCn.State != ConnectionState.Open)
    {
    TestCn.Open();
    bFlag = true;
                    }
    }
    catch(Exception e)

    sErrorMsg = e.Message;
    }
    finally
    {
    if(TestCn.State == ConnectionState.Open)
    {
    TestCn.Close();
    }
    }
    return bFlag;
    } #endregion #region 資料查詢--[ SELECT ]
    public DataSet Select(string sCmdString)
    {
    //建立CONNECTION對像
    OleDbConnection cn1=new OleDbConnection(sAcsCon);
    //建立DATASET對像,做資料返回值
    DataSet oDs = new DataSet();
    try
    {//建立Adapter對像
    OleDbDataAdapter myAdapter = new OleDbDataAdapter(sCmdString,cn1);
    myAdapter.Fill(oDs);
    }
    catch
    {
    cn1.Close();
    }
                
    return oDs;
    }
    #endregion #region 數據資料更新--[ Update ] //執行--[ UPDATE ][ INSERT ][ DELETE ] 
    //[ The command Execute sccess return 1]
    //[ The command Execute unSuccess return -1]
    public int UpdateCmd(string CommandString)
    {
    int nResult = -1;
    //進行一個本地交易
    // OleDbTransaction myTran = Link_cn.BeginTransaction(IsolationLevel.ReadCommitted);
    // myTran.Begin();
    //oledbcommand 命令執行交易
    OleDbCommand myCmd = new OleDbCommand(CommandString,Link_cn);

    //和數據庫進這行數據交易
    try
    {
    //提交數據
    myCmd.ExecuteNonQuery();
    // myTran.Commit();
    nResult = 1;
    }
    catch(OleDbException oe)
    {
    //出錯數據回滾原來的狀態,保持數據庫一致性
    // myTran.Rollback();
    nResult = -1;
    throw oe;
    }
    finally
    {
    //執行交易後關閉聯接
    Link_cn.Close();
    }
    return nResult;
    }
    #endregion
    }
    #region 處理字符,以符合SQL語句用--[ class sTringAdd ]
    public class sTringAdd
    {

    public sTringAdd(){} public string SQLQ(string sText)
    {
    sText = "'"+sText+"'";
    return sText;
    } public string SQLQ(int n)
    {
    return n.ToString();
    } public string SQLQ(double n)
    {
    return n.ToString();
    } public string SQLQC(string sText)
    {
    sText = "'"+sText+"',";
    return sText;
    } public string SQLQC(int nText)
    {
                string sText = nText.ToString()+",";
    return sText;
    } public string SQLQC(double nText)
    {
    string sText = nText.ToString()+",";
    return sText;
    }
    }
    #endregion}
      

  7.   

    yybb520(bbyy)
       我遇到了就是你说的这种问题,请问怎样才能在IIS中将ACCESS的权限全改成完全控制?一般情况下如果在ACCess中没有写入权限后,就会在对数据库中数据进行操作时只能进行查询操作,其它比如,修改,删除,等等须要进行写操作的就无法进行,比如在修改时会出现“操作须一个可更新的查询”等错,你可以在iis中将access的权限全改成完全控制就对了!
      

  8.   

    右击你的IIS站点名称-->所有工作-->权限向导!!
    下面就自己做吧!