我正在嘗試更新Excel工作表的單個單元格。請注意,在我下面的示例代碼中,我使用了列和行的變量,因爲這將根據我的程序的其他部分進行更改,但出於調試目的,我已分別將它們設置爲A和1。使用OleDb更新Excel工作表
現在我得到一個錯誤說:「語法錯誤(缺少操作員)在查詢表達式'06:31 PM」
請不要簡單地提示我參數,因爲我知道這不會解決我的問題我不是事先大家擔心注射
感謝
string newColumn = "A";
string newRow = "1";
string worksheet2 = strMonth;
var cnnStr2 = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;IMEX=1;HDR=NO\"", textBox1.Text);
var cnn2 = new OleDbConnection(cnnStr2);
cnn2.Open();
string sql2 = String.Format("UPDATE [{0}$] SET {1}{2}={3}", worksheet2, newColumn, newRow, dtpTime.Text.Substring(0, 8));
OleDbCommand objCmdSelect = new OleDbCommand(sql2, cnn2);
objCmdSelect.ExecuteNonQuery();
cnn2.Close();
編輯:基於格哈德建議的鏈接,我已經改變了我的命令文本如下:
string sql2 = String.Format("UPDATE [{0}${1}{2}:{1}{2}] SET F1='{3}'", worksheet2, newColumn, newRow, dtpTime.Text.Substring(0, 8));
這現在產生錯誤「操作必須使用可更新的查詢。」不知道現在該做什麼。 {1} {2}:{1} {2}給出工作表{0} $上的單個單元格範圍,如果沒有列名,我在連接字符串中指定了F1,沒有。最後,{3}是我用來更新單元格的子字符串,並且只用單引號,因爲每個人似乎都這樣做。如果我刪除單引號,它只會產生一個不同的錯誤。
是的。然後錯誤更改爲「沒有給出一個或多個所需參數的值」。 –
也許這將有助於:http://forums.asp.net/t/1214491.aspx/1 –
或此(教程):http://yoursandmyideas.wordpress.com/2011/02/05/how-to-讀或寫 - 使用excel-file-using-ace-oledb-data-provider/ –