求助 C# SQL语句,两个字段多条件查询报错

oumiga111 2018-05-12 01:04:45
以下语句报错
string strSQL = "select name from (select name from student where name='" + textBox2.Text.Trim() + "')AS t1 where uid='" + Login.id + "' OR uid='1'"
下面这个语名始终得到第一个name值,也不对
string strSQL = "select name from student where name='" + textBox2.Text.Trim() + "' OR uid ='" + Login.uid + "' OR uid='1'“

如何才能获取到 条件1,name必需是 textBox2.Text.Trim() 的,(可能有多个),然后uid可以是当前登录的 Login.uid 也可以是 udi=1的

专家给纠正下,谢谢
...全文
1345 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
jwb7832007 2018-05-21
  • 打赏
  • 举报
回复
我觉得还是考虑用ORM吧,自己拼SQL语句,一不小心就踩到坑,如果为了学习就不说了,为了工作的话还是ORM更方便
sprints_昊天 2018-05-19
  • 打赏
  • 举报
回复
6楼已经把答案给你了
大鱼> 2018-05-19
  • 打赏
  • 举报
回复
你可以调试进去,得到执行的SQL语句,就很简单的知道是哪里出错了。
清江堤畔 2018-05-18
  • 打赏
  • 举报
回复
1、select name 和 where name= 要返回的字段内容,本身就是要输入的内容 2、textBox2.Text 如果包含多个 name ,就要用 in 3、uid = Login.uid、uid = 1 有2个结果,加上 name 符合的可能会有多个结果,而且 SQL 的返回结果并非一定是在数据库中的实际排序,可能是乱序的。
BXS_null 2018-05-18
  • 打赏
  • 举报
回复
报什么错你倒是说啊。。。
Me918 2018-05-14
  • 打赏
  • 举报
回复
纠正1. string strSQL = "select uid from (select uid from student where name='" + textBox2.Text.Trim() + "') AS t1 where t1.uid='" + Login.id + "' OR t1.uid='1'" 其实可以用下面的语句: string strSQL = "select * from student where name='" + textBox2.Text.Trim() + "' and (uid ='" + Login.uid + "' OR uid='1')“
sunylf 2018-05-14
  • 打赏
  • 举报
回复
string strSQL = "select * from student where name='" + textBox2.Text.Trim() + "' and (uid ='" + Login.uid + "' OR uid='1')“
  • 打赏
  • 举报
回复
分析了你的提问,猜出大概你想问的意思是: 1) >以下语句报错 >string strSQL = "select name from (select name from student where name='" + textBox2.Text.Trim() + "')AS t1 where uid='" + Login.id + "' OR uid='1'" 回答:报什么错误?(因为是拼接的字符串,看不到形成后的SQL文,纠正一点:把AS左边加个空格,name的值用单引号括起来) 2) >下面这个语名始终得到第一个name值,也不对 >string strSQL = "select name from student where name='" + textBox2.Text.Trim() + "' OR uid ='" + Login.uid + "' OR uid='1'“ >name必需是 textBox2.Text.Trim() 的,(可能有多个) 回答:where name in (---- textBox2.Text.Trim() ----),这里“---- textBox2.Text.Trim() ----”需要拆分成['name1','name2'],参考SQL的"IN"条件用法 3)最后再抛个砖头,你是不是想问:从画面的Textbox中录入若干个名字,然后再SQL中把这些名字作为条件的数据抽出?
Hello World, 2018-05-12
  • 打赏
  • 举报
回复
建议不要拼字符串
string strSQL = "select name from student  where name='" + textBox2.Text.Trim() + "' AND (uid ='" + Login.uid + "' OR uid='1'")
xuzuning 2018-05-12
  • 打赏
  • 举报
回复
我又不知道你的那控件和变量中的数据是什么 你把组装好的 SQL 指令打印出来给我看看
oumiga111 2018-05-12
  • 打赏
  • 举报
回复
AND udi in (1,'" + Login.udi + "' )
oumiga111 2018-05-12
  • 打赏
  • 举报
回复
我是不是应该用 AND thegroup in (1,'" + Login.udi + "' ) ?? 学的不扎实,没自信
oumiga111 2018-05-12
  • 打赏
  • 举报
回复
回1#楼: 使用第二个,得到的结果是全部结果,我只要符合textbox2的,并且是uid为1或当前用户id的,该记录只有一条,且不重复,但如果排除uid,就可能有多条
xuzuning 2018-05-12
  • 打赏
  • 举报
回复
第一句有两个 where 子句,显然是不对的 第二条。你自己打印出来看看

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧