日期:2014-05-18  浏览次数:20371 次

SQL注入我写的怎么不对呢?
编译错误  
说明:   在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。  

编译器错误信息:   CS0120:   非静态的字段、方法或属性“System.Data.OleDb.OleDbCommand.Parameters.get”要求对象引用

源错误:

 
行   134:
行   135:                         OleDbCommand.Parameters.Add(new   OleDbParameter( "@loginName ",   OleDbType.NVarChar,   20));
行   136:                         OleDbCommand.Parameters[ "@loginName "].Value   =   this.UserName.Text;

 


------解决方案--------------------
OleDbCommand.Parameters.Add(new OleDbParameter( ":loginName ", OleDbType.NVarChar, 20));
OleDbCommand.Parameters[ "loginName "].Value = this.UserName.Text;


------解决方案--------------------
参数格式不对,Sqlserver是@,Oracle是:,MySql是?;
SQL语句中也是如此
------解决方案--------------------
看错了,OleDbCommand是需要实例化的,如:
System.Data.OleDb.OleDbCommand oc = new System.Data.OleDb.OleDbCommand( "select * form user where id=@id ");
oc.Parameters.Add( "id ", System.Data.OleDb.OleDbType.Integer);
oc.Parameters[ "id "].Value = 123;
------解决方案--------------------
这个有点乱.

操作数据库干脆都用 SQLHELPER就行啦

------解决方案--------------------
new Command 是没有贴出来还是没写?
------解决方案--------------------
mark


看不出代码哪里错误
------解决方案--------------------
System.Data.OleDb.OleDbCommand 需要实例化,然后再用实例,也就是New一个对象出来,除非调用的是静态方法