黑马程序员技术交流社区
标题:
ADO中的疑惑
[打印本页]
作者:
苏波
时间:
2013-1-16 14:51
标题:
ADO中的疑惑
cmd.CommandText = "select *from T_Users where UserName='" + username + "'";请问这条语句是什么意思 ,求详细解释,为什么用 +以及' “’”又是什么意思前面的都懂就是='" + username + "'";从这里开始不明白是什么意思了 求详细解释
作者:
许庭洲
时间:
2013-1-16 15:40
1. CommandText属性为要执行的SQL语句;
2.例如:
SqlConnection conn = new SqlConnection(“server=.;uid=sa;pwd=sa;database=MYDB”);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText =
"
select *from T_Users where UserName='
"
+ username +
"
'
"
;//UserName在数据库中定义的是一个varchar型的,而对字符型进行条件查询的时候是要加''号的,而加号用于字符拼接 。
Con.Open();
SqlDataReader sr = cmd.ExecuteQuery();
While(sr.Read())
{
......
}
Conn.Close();
作者:
黑马刘俊
时间:
2013-1-18 12:22
可以参考这个语句的解释
cmd.CommandText = "insert into T_Users1(UserName,Password) values ('"+username+"','"+password+ "')";
分解下理解比较好
首先 cmd.CommandText = " " 表示命令对象所要在执行的sql语句,这个sql语句是通过字符串参数赋给CommandText属性的。
假设username = 'aaa',password = 'bbb'
那么实际上我们执行的sql语句是 insert into T_Users1(UserName,Password) values ('aaa','bbb')
下面通过字符串连接来构造这条语句
insert into T_Users1(UserName,Password) values ( ' ' ' = insert into T_Users1(UserName,Password) values ('
+username = insert into T_Users1(UserName,Password) values ('username
+" ',' " = insert into T_Users1(UserName,Password) values ('username','
+password = insert into T_Users1(UserName,Password) values ('username','password
+ " ') " = insert into T_Users1(UserName,Password) values ('username','password')
我是这样理解的,把',' 当成一个字符串,不要理解为用单引号包裹了一个逗号,实际上我不知道这样写行不行,如果需要使用字符串连接来构造sql语句,最好写成这样,不要嵌套使用单双引号,容易犯错,而且很难找到错误
cmd.CommandText = "insert into T_Users1(UserName,Password) values ( " + " ' " + " ," + " ' " + password + " ' " + " ) "
不过最好推荐用string.format()函数来构造比较容易看懂,或者参数化查询也行。
作者:
乔培培
时间:
2013-1-18 13:26
这是一句拼接字符串的代码
两个字符串相加就是 “” = “” + “” 右边的两个字符串加起来,也就是连接为一个字符串;
三个字符相加就是 “” = “” + “” + “”
至于单引号则表示username为字符串类型,这样在执行Sql语句的时候,Sql Server才知道,如果是字符串类型,比如你代码中username就是,不加单引号就会报错,如果是数字类型就不需要加单引号,其它类型一般就要加
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2