[ad_1]
Excel シートにデータを挿入する必要がありますが、次のエラーが発生します:- 操作では更新可能なクエリを使用する必要があります。 私の .xlsx ファイルが存在する全員のフォルダーにアクセス許可を与えました。 C# を使用して Visual Studio 2012 Express を使用しています。
コードは次のとおりです-
C#
private void InsertData() { //-- try { System.Data.OleDb.OleDbConnection MyConnection; System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); string sql = null; //string path = System.IO.Path.GetFullPath(Server.MapPath("~/InformationNew.xlsx")); string path = "D:/ttt.xlsx"; //MyConnection = new System.Data.OleDb.OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties='Excel 12.0;HDR=YES;IMEX=1;';"); string connstr= "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:/ttt.xlsx;Extended Properties=\"Excel 12.0 Xml;HDR=Yes;IMEX=1\""; MyConnection =new OleDbConnection(connstr); MyConnection.Open(); myCommand.Connection = MyConnection; //sql = "Insert into [Sheet1$] (id,name) values('5','e')"; sql = "Insert into [Sheet1$](a,b,c,d) Values('1','Vikas','Bohra','50')"; //sql = "Select * From [Sheet1$]"; myCommand.CommandText = sql; myCommand.CommandType = CommandType.Text; myCommand.ExecuteNonQuery(); MyConnection.Close(); } catch (Exception ex) { Response.Write(ex.ToString()); } //-- }
解決策 1
StackOverflow の質問には、おそらく機能する次の応答が返されました…
」接続文字列から IMEX=1 を削除します。 それは私にとってはうまくいきます。」
http://stackoverflow.com/questions/12002805/update-an-excel-sheet-using-vba-ado[^]
解決策 2
この権限を設定するには、Excelsheet フォルダー (またはファイルを配置した他のフォルダー) を右クリックし、[プロパティ]を選択します。[共有]タブを探します。 共有ボタンをクリックし、すべての名前に読み取りおよび書き込み権限を与えてから、共有ボタンをクリックします。 それでおしまい。 これで完了です。 これでうまくいきます。 私のために働いています。
[ad_2]
コメント