SQL问题,请赐教!!!
我用C#连接数据库,用的是oleDataAdapter,SQL语句为
select id, user_name,firstname From abcs,Where (id=?)OR( user_name=?)OR(firstname=?)生成数据配置的时候通过了然后使用oleDbDataAdapter1.SelectCommand.Parameters[0].Value = textbox1.Text,为什么报错?
附:我只使用一个限制时select id, user_name,firstname From abcs,Where (id=?),然后oleDbDataAdapter1.SelectCommand.Parameters[0].Value = textbox1.Text,就可以实现在textbox1中输入id,就调出相应的记录。
还有Parameters[0]的参数[0]是什么意思?
------解决方案--------------------一共3个参数
oleDbDataAdapter1.SelectCommand.Parameters[0].Value =
oleDbDataAdapter1.SelectCommand.Parameters[1].Value =
oleDbDataAdapter1.SelectCommand.Parameters[2].Value =
------解决方案--------------------1 报错 :因为有3个参数,你只定义一个;
2 【0】是Parameters集合的第一个。
------解决方案--------------------可能是我没有说清楚,我实际是定义了一个comBox——包含id,user_name,firstname,也就是每次下拉comBox指定一个属性后,在textBox中输入该属性的一个值,然后搜出该属性为textBox的记录进行显示。所以不可能将三个参数都定义(因为我只对一个属性进行查找)。不知道我这次说清楚了没有?请继续!
-------------------------
很简单呀,每次就设置一个对应的值,就是了,
比如:按id查询
oleDbDataAdapter1.SelectCommand.Parameters[0].Value =id输入值
oleDbDataAdapter1.SelectCommand.Parameters[1].Value =" " //输入其他的不存在的值
oleDbDataAdapter1.SelectCommand.Parameters[2].Value = " " //输入其他的不存在的值
按user-name查询
oleDbDataAdapter1.SelectCommand.Parameters[0].Value = " " //输入其他的不存在的值
oleDbDataAdapter1.SelectCommand.Parameters[1].Value =user-name输入值oleDbDataAdapter1.SelectCommand.Parameters[2].Value = " " //输入其他的不存在的值
------解决方案--------------------select id, user_name,firstname From abcs,Where (id=?)OR( user_name=?)OR(firstname=?)
虽然这三个?你用的是同一个值,但是解析sql时,会当成3个参数,所以。。。,解决方案如上所述