
PK说的对,少了一个AND,建议你改写如下:
string sql = @"
SELECT COUNT()
FROM tLogin
WHERE (userName = '" + userName + @"')
AND (userPwd = '" + userPwd + @"')
AND (userIdentity = " + userIdentity + ")";
不过我更建议你把3个参数改成参数化输入,否则很容易被注入。
select count(1) from 表名 where fault_name = '发动机'
执行一下,先看看有多少条数据。
如果只有一条的话,那就不是sql的问题了,是数据只有一条的问题。
sql查询语句的where条件里可以使用参数吗? 50
比如
select from student where tID = @tID
这样可以吗?
翠竹安 | 浏览 3997 次
推荐于2016-03-25 14:48:49 最佳答案
从提升性能和安全的角度(防注入)来讲,建议使用参数化方式来处理。
示例如下:
//实例化Connection对象
SqlConnection connection = new SqlConnection("server=localhost;database=pubs;uid=sa;pwd=''");
//实例化Command对象
SqlCommand command = new SqlCommand("select from UserInfo where sex=@sex and age>@age", connection);
//第一种添加查询参数的例子
commandParametersAddWithValue("@sex", true);
//第二种添加查询参数的例子
SqlParameter parameter = new SqlParameter("@age", SqlDbTypeInt);//注意UserInfo表里age字段是int类型的
parameterValue = 30;
commandParametersAdd(parameter);//添加参数
SqlDataReader reader = commandExecuteReader();
create or replace procedure test(in in_where varchar(100)) --创建一个存储过程test,并可以传入字符串作为参数
declare v_sql varchar(512);
set v_sql = ' delete from table1 where field1 in (' concat in_where concat ') ' ; -- 这里是把传进来的where语句拼起来
execute immediate v_sql; --这里是把语句进行执行---------类似以上这样的存储过程,使用以下的放在进行执行即可:call test( ' ''001'',''002'' ') ; --内容中的一个‘ 需要使用 ’‘ 进行转义
第一种写法是正确的。
当然你如果条件多了,还可以加()如:select*fromtbwhere(a字段='x'ora字段='y')andb字段='zzz'。
结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。SQL使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
文本值:这是正确的:SELECT*FROMPersonsWHEREFirstName='Bush'。这是错误的:SELECT*FROMPersonsWHEREFirstName=Bush。
以上就是关于where语句 三个条件全部的内容,包括:where语句 三个条件、vb 数据库中where语句、如何用SQL在where语句里传optional参数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)