C# MS Access OleDB对象引用未设置为对象的实例
我创建了一个.NET4.5应用程序,可以读取和写入MS Access数据库。在我的机器(有MS office)上运行应用程序时,一切正常,但在我的服务器(没有MS office但有ACE)上运行时,我得到的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()
对象引用未设置为对象的实例
当我单击按钮时会发生这种情况。下面是代码
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()处中断;。异常消息是操作必须使用可更新的查询