2014-10-08 46 views
0

我想從asp網格視圖添加數據到我的Excel表。我使用Excel作爲後端數據庫,但出現錯誤 - 「System.Data.OleDb.OleDbException:操作必須使用可更新的查詢。」我檢查了文件的訪問權限,並從連接字符串中刪除了IMEX = 2,但沒有成功。操作必須使用可更新的查詢。 ASP.NET與EXCEL DB

這裏是我的嘗試:

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(); 
+0

它是一個SQL /訪問?導致訪問我不知道你可以使用表名的方括號[]。你是否嘗試直接在你的數據庫中運行這個查詢? – ilans 2014-10-08 09:47:45

回答

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(); 
相關問題