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

今それをチェックしてください。動作する場合(レコードが追加される場合)とエラーメッセージが表示される場合があります(操作では更新可能なクエリを使用する必要があります)。

奇妙に聞こえるかもしれませんが、テキストフィールドに単語が1つしかない場合に、エラーメッセージが表示されます。例:「テスト」。「TESTONE」に変更するとすぐに動作します。最初から2語で保存しようとすると、うまくいきます。

私が間違っているかもしれない何か考えはありますか?

ありがとう!!

4

1 に答える 1

0

注: INSERT INTO[Plan1$]をINSERTINTO[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 に答える