1

私はこのテーブルメインを持っています:

"Record ID",Status,Placement,Private,Category,Note,Description,"Due Date",Completed,Priority,Blob,"Repeat On Complete Date","Complete Date","Alarm Set","Alarm Time","Alarm Advance","Repeat Start Date","Repeat Info"

記入例

14340973,132,2147483647,False,3,Any note,Any Description,1956556799,False,1,System.Byte[],False,1956556799,False,1956470400,0,0,

Insert into SQL の正しい構文は何ですか?

これは私がしたことです:

string strSQL = "INSERT INTO Main ( Record ID , Status , Placement , Private , Category , Note , Description , Due Date , Completed , Priority , Blob , Repeat On Complete Date , Complete Date , Alarm Set , Alarm Time , Alarm Advance , Repeat Start Date , Repeat Info ) VALUES (@Rid,132, 2147483647, False,, @Kat, @Not, @Bes, 1956556799, False, @Pri, '', 1956556799, False, 1956470400, 0, 0, '', '')"; 
        MessageBox.Show(strSQL);
        OleDbCommand cmd = null;
        try
        {
            cmd = new OleDbCommand(strSQL, AufgabenVerbindung);
        }
        catch (Exception vvxc)
        {
            Console.WriteLine(vvxc.Message);
        }
        OleDbParameter Kat, Not, Bes, Pri, Rid;
        Rid = cmd.Parameters.Add("@Rid", OleDbType.BigInt);
        Kat = cmd.Parameters.Add("@Kat", OleDbType.TinyInt);
        Not = cmd.Parameters.Add("@Not", OleDbType.VarChar);
        Bes = cmd.Parameters.Add("@Bes", OleDbType.VarChar);
        Pri = cmd.Parameters.Add("@Pri", OleDbType.TinyInt);
        Rid.Value = Record_ID + 1;
        Kat.Value = 5;
        Not.Value = txtNotiz.Text;
        Bes.Value = txtBeschreibung.Text;
        Pri.Value = pri;
        cmd.ExecuteNonQuery();

cmd.ExecuteNonQuery() は例外をスローします

現在のコード: http://pastebin.com/16FwUhLr

4

2 に答える 2

6

2つの問題があります。[]まず、スペースを含む列名があります。これがSQL Serverの場合は、次のようにそれらをラップしてみてください。

string strSQL = "INSERT INTO Main ( [Record ID] , Status , Placement , Private , Category , Note , Description , [Due Date] , Completed , Priority , Blob , [Repeat On Complete Date] , [Complete Date] , [Alarm Set] , [Alarm Time] , [Alarm Advance] , [Repeat Start Date] , [Repeat Info] ) VALUES (@Rid,132, 2147483647, False,, @Kat, @Not, @Bes, 1956556799, False, @Pri, '', 1956556799, False, 1956470400, 0, 0, '', '')"; 

これがMySQLの場合、列名を`でラップする必要があると思います

また、この部分:False,, @Kat, は無効です。余分なコンマを削除するか、そこに値を入れてみてください。

于 2012-06-21T21:43:44.280 に答える
3

[]空白を含むフィールドでラップ

例えば

[Record ID][Due Date]

于 2012-06-21T21:42:51.400 に答える