我有这个表主页:
"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,
在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()抛出异常
答案 0 :(得分:6)
我看到两个问题。首先你有空格的列名,如果这是用于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,
无效。尝试删除额外的逗号或在其中放置一个值。
答案 1 :(得分:3)
用[]
包含空格
例如
[Record ID]
和[Due Date]