日期:2014-05-19  浏览次数:20842 次

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个参数,所以。。。,解决方案如上所述