操作必须使用可更新的查询。 ASP.NET与EXCEL DB

时间:2014-10-08 09:44:51

标签: c# asp.net ado.net

我正在尝试将数据从asp网格视图添加到我的Excel工作表中。我使用Excel作为后端数据库,但收到错误 - " System.Data.OleDb.OleDbException:操作必须使用可更新的查询。"我已经检查了文件的访问权限,并从连接字符串中删除了IMEX = 2但没有成功。

这是我尝试的内容:

 private static string path = @"C:\Manish\ExcelUI\NameValuePair.xlsx"; //+ FileUpload1.FileName
    //Coneection String by default empty  
    private static string ConStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=\"Excel 12.0; ReadOnly=False; HDR=Yes;\"";
GridViewRow row = (GridViewRow)gvExcelFile.Rows[e.RowIndex];
        TextBox tName = (TextBox)gvExcelFile.FooterRow.Cells[0].FindControl("txtName1");
    TextBox tValue = (TextBox)gvExcelFile.FooterRow.Cells[1].FindControl("txtValue1");
    string nm = tName.Text;
    string val = tValue.Text;
         conn.Open();
    OleDbCommand cmd1 = new OleDbCommand("INSERT INTO [Sheet1$] " + "([Name],[Value]) " + "VALUES(@value1, @value2)", conn);
    cmd1.Parameters.AddWithValue("@value1", nm);
    cmd1.Parameters.AddWithValue("@value2", val);
    cmd1.ExecuteNonQuery();
    conn.Close();
    gvbind();

1 个答案:

答案 0 :(得分:0)

我使用excel作为数据库。最后,就插入操作而言,问题得到了解决。我猜这个问题是访问文件夹和保存excel文件的驱动器。

现在我遇到了更新操作的问题。我在excel表中没有唯一的(主)键。这是我得到的错误 - “System.Data.OleDb.OleDbException:UPDATE语句中的语法错误。”如果您发现任何变化,请提出建议。

这是我试过的:

    GridViewRow row = (GridViewRow)gvExcelFile.Rows[e.RowIndex];
    TextBox TxtEditName = (TextBox)row.FindControl("TxtEditName");
    TextBox TxtEditValue = (TextBox)row.FindControl("TxtEditValue");

    string enm = TxtEditName.Text;
    string evl = TxtEditValue.Text;
    gvExcelFile.EditIndex = -1;
    conn.Open();

    string editquery = "UPDATE [Sheet1$] set Name=? ,Value=?";
    OleDbCommand editcmd = new OleDbCommand(editquery, conn);
    editcmd.Parameters.AddWithValue("Name", enm);
    editcmd.Parameters.AddWithValue("Value", evl);
    editcmd.ExecuteNonQuery();
    conn.Close();
    gvbind();