0

不知何故,我无法理解我正在使用的命令发生了什么。基本上我想将数据插入到 EXCEL 文件中,如下所示:

string ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=scriptsdb.xlsx;Extended Properties=\"Excel 12.0;ReadOnly=False;HDR=Yes;\"";
OleDbConnection objConn = new OleDbConnection(ConnectionString);
string sSQLQuery = "INSERT INTO [Plan1$] ([ID], [NAME], [DESCRIPTION], [SQL_CODE]) VALUES ('" + NextID + "','" + txtbxName.Text + "','" + txtbxDescription.Text + "','" + txtboxSQL.Text + "')";
OleDbCommand cmd = new OleDbCommand(sSQLQuery, objConn);
objConn.Open();
cmd.ExecuteNonQuery();

现在检查一下。有时它有效(添加了记录),有时我收到一条错误消息(操作必须使用可更新查询)。

听起来很奇怪,当文本字段只有一个单词时,我只会收到错误消息。例如:“测试”。一旦我将其更改为“TEST ONE”,它就可以正常工作。如果我尝试从一开始就用两个词保存它,它就可以工作。

知道我可能做错了什么吗?

谢谢!!

4

1 回答 1

0

注意:将 INSERT INTO [Plan1$] 更改为 INSERT INTO[Sheet1$]。

工作代码。

class Program
        {
            static void Main(string[] args)
            {
            string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+"C:\\Users\\123\\Desktop\\plan1.xlsx;"+"Extended Properties=\"Excel 12.0;ReadOnly=False;HDR=Yes\";";
            // here you can use your text box or from
            // where ever you access the data to be inserted
            // into the that Excel file sheet

            string selectString = "INSERT INTO [Sheet1$] ([ID], [NAME], [DESCRIPTION], [SQL_CODE]) VALUES ('1','maziz','Not working','selectfrom you')";

            OleDbConnection con = new OleDbConnection(connectionString);
            OleDbCommand cmd = new OleDbCommand(selectString, con);

            try
            {
                con.Open();
                cmd.ExecuteNonQuery();
                Console.WriteLine("Successfully inserted the records");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            finally
            {
               con.Close();
               con.Dispose();
            }
            Console.ReadLine();
            }
        }
于 2012-10-16T10:36:45.970 回答