A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 苏波 高级黑马   /  2013-1-16 14:51  /  1358 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

cmd.CommandText = "select *from T_Users where UserName='" + username + "'";请问这条语句是什么意思 ,求详细解释,为什么用 +以及'   “’”又是什么意思前面的都懂就是='" + username + "'";从这里开始不明白是什么意思了 求详细解释

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

2 个回复

倒序浏览
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();

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
可以参考这个语句的解释

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()函数来构造比较容易看懂,或者参数化查询也行。

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
这是一句拼接字符串的代码
两个字符串相加就是 “”  =  “” + “” 右边的两个字符串加起来,也就是连接为一个字符串;
三个字符相加就是 “” = “” + “” + “”
至于单引号则表示username为字符串类型,这样在执行Sql语句的时候,Sql Server才知道,如果是字符串类型,比如你代码中username就是,不加单引号就会报错,如果是数字类型就不需要加单引号,其它类型一般就要加

评分

参与人数 1技术分 +1 收起 理由
潘梦军 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马