C# MS Access OleDB对象引用未设置为对象的实例

C# MS Access OleDB对象引用未设置为对象的实例,c#,asp.net,ms-access,C#,Asp.net,Ms Access,我创建了一个.NET4.5应用程序,可以读取和写入MS Access数据库。在我的机器(有MS office)上运行应用程序时,一切正常,但在我的服务器(没有MS office但有ACE)上运行时,我得到的对象引用未设置为对象的实例 当我单击按钮时会发生这种情况。下面是代码 try { OleDbConnection conn = new OleDbConnection(connectionString); conn.Open()

我创建了一个.NET4.5应用程序,可以读取和写入MS Access数据库。在我的机器(有MS office)上运行应用程序时,一切正常,但在我的服务器(没有MS office但有ACE)上运行时,我得到的
对象引用未设置为对象的实例

当我单击按钮时会发生这种情况。下面是代码

 try
        {
            OleDbConnection conn = new OleDbConnection(connectionString);
            conn.Open();
            est_index = getTableIndex(conn,estimateTableIndex);

            for (int i = 0; i < inputValues.Count; i++)
            {
                string FieldName = "";
                string FieldValue = "";
                if (inputValues[i] is System.Web.UI.WebControls.TextBox)
                {
                    FieldName = inputValues[i].ClientID;
                    FieldValue = ((System.Web.UI.WebControls.TextBox)(inputValues[i])).Text;
                }
                else
                {
                    FieldName = inputValues[i].ClientID;
                    FieldValue = ((System.Web.UI.WebControls.DropDownList)(inputValues[i])).SelectedValue;
                }
                //everything fine till here..then throws the error below
                string my_querry = "INSERT INTO Estimate VALUES(@Est_id,@FieldName,@FieldValue)";
                OleDbCommand cmd = new OleDbCommand(my_querry, conn);
                cmd.Parameters.AddWithValue("@Est_id", est_index);
                cmd.Parameters.AddWithValue("@FieldName", FieldName);
                cmd.Parameters.AddWithValue("@FieldValue", FieldValue);
                cmd.ExecuteNonQuery();

            }
            conn.Close();
        }
        catch (Exception e)
        {
            Console.Write(e.InnerException.Message);
        }
试试看
{
OLEDB连接连接=新的OLEDB连接(连接字符串);
conn.Open();
est_指数=getTableIndex(conn,EstimatableIndex);
对于(int i=0;i
不知道为什么会这样

编辑:我创建了一个虚拟机并下载了ACE,客户端遇到了相同的错误


编辑2:连接字符串看起来像“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\cohber.accdb”
我试图调试并查看代码在哪里中断,它在
cmd.ExecuteNonQuery()处中断。异常消息是
操作必须使用可更新的查询


编辑3:MS Access文件位于c驱动程序中。我已向所有用户授予了完全权限,但仍然出现错误

您需要对包含access.mdb文件的文件夹设置读/写权限

当您告诉我们哪一行引发了异常时,通常会有所帮助。请验证您是否具有此权限,请包括连接字符串:您可以重命名db和文件夹以保护敏感数据,但我们必须审视它的结构。另外,您使用的Access Db版本是什么?感谢和问候,连接字符串看起来像“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\karan\Documents\cohber.accdb”我试图调试代码,并查看代码在哪里中断,它在cmd.ExecuteNonQuery()处中断;。异常消息是操作必须使用可更新的查询