SQL的保留字问题和参数定义顺序问题

一直用SQL Server 所以没有发现SQL执行语句参数定义还有顺序问题

最近自己做了个生活管理小软件用了Access才有所发现

原来导致混乱的语句:        

            Cmd.Parameters.AddWithValue("@KDCID", int.Parse(id));
            Cmd.Parameters.AddWithValue("@User", user);
            Cmd.Parameters.AddWithValue("@Password", password);
            Cmd.CommandText = "UPDATE KDCTable SET User=@User,Password=@Password WHERE KDCID = @KDCID"; 

(混乱原因在于在Access中参数定义的顺序必须要和CommandText 中参数出现的顺序一致)

混乱排除,可是执行时却报告SQL语句的语法错误.

重新检查,一切正常啊,忽然想起SQL的保留字问题,拿出表一查(下面附有SQL保留字表).

果然password是保留字(不区分大小写'_' ).于是改成[Password]执行,可还是报告同样错误.

不会user也是保留字吧,可我记得只有use是保留字啊,赶紧查表,的确没有user,可我还是改成[User]了.

一执行,全线通过,一切正常!!! (到底表准不准啊,这可是microsoft提供的啊)

现在正常工作的语句:
            Cmd.Parameters.AddWithValue("@User", user);
            Cmd.Parameters.AddWithValue("@Password", password);
            Cmd.Parameters.AddWithValue("@KDCID", int.Parse(id));
            Cmd.CommandText = "UPDATE KDCTable SET [User]=@User,[Password]=@Password WHERE KDCID = @KDCID";

Everything is OK!

SQL中的保留字大全
----------------------------------------------------------------------
action add aggregate all alter after and as
asc avg avg_row_length auto_increment between bigint bit binary blob bool both by
cascade case char character change check checksum column
columns comment constraint create cross current_date current_time current_timestamp
data database databases date datetime day day_hour day_minute
day_second dayofmonth dayofweek dayofyear dec decimal default delayed
delay_key_write delete desc describe distinct distinctrow double drop
end else escape escaped enclosed enum explain exists
fields file first float float4 float8 flush foreign from for full function global grant grants group
having heap high_priority hour hour_minute hour_second hosts identified ignore in index infile
inner insert insert_id int integer interval int1 int2 int3 int4 int8 into if is isam join
key keys kill last_insert_id leading left length like
lines limit load local lock logs long longblob longtext low_priority max max_rows
match mediumblob mediumtext mediumint
middleint min_rows minute minute_second modify month monthname myisam
natural numeric no not null on optimize option
optionally or order outer outfile pack_keys partial password
precision primary procedure process processlist privileges read real
references reload regexp rename replace restrict returns revoke rlike row rows second
select set show shutdown smallint soname sql_big_tables sql_big_selects
sql_low_priority_updates sql_log_off sql_log_update sql_select_limit
sql_small_result sql_big_result sql_warnings straight_join starting status string table
tables temporary terminated text then time timestamp tinyblob
tinytext tinyint trailing to type use (user) using unique unlock unsigned update usage
values varchar variables varying varbinary with write when where year year_month zerofill

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值