请问为什么这两条sql查询语句写法有区别??

来源:百度知道 编辑:UC知道 时间:2024/09/25 12:15:15
假设我要查询name是zz的人的记录,在c#中写成查询语句是:
(1)sqlString="select * from myTable where name='" + zz.ToString +"'";

当我查询变量str表示的字段时(假设 str="name"):

(2)sqlString= "select " + str + "from myTable";
比较上面两条语句,发现语句1在 双引号中加了单引号,而语句2则没有,哪一种写法正确??

都对啊,但是查询的东西不一样了!

select 字段名 form 表名 where 条件

字段名是不需要加引号的,建议加“[]”,微软系统都喜欢这么干!

条件里面的字符串常量需要加'号。

sqlString="select * from myTable where name='" + zz.ToString +"'";
加单引号是因为 zz在数据库里是个字符串char

sqlString= "select " + str + "from myTable";
这句的意思是 查询myTable中的数据 并只显示 str 列
注意 这里LZ吧name当成了列名 而不是元素

1、查询字段(name)的值等于字符串zz.ToString的全部记录。字段名称就是name。
返回数据集:包括符合条件的全部记录,每条记录都有全部的字段内容。 (多行多列)
2、查询的字段名称是个变量:str
返回数据集:包括全部记录,每条记录只有(str)一个字段。(多行单列)
查询语句本来就是字符串,用双引号界定。在字符语句中还引用字符串,所以为避免界定歧义,再用单引号。——呵呵,还有双引号中加入双引号的,单双引号反复交错使用的。

当我查询变量str表示的字段时(假设 str="name"):

(2)sqlString= "select " + str + "from myTable";
比较上面两条语句,发现语句1在 双引号中加了单引号,而语句2则没有,哪一种写法正确??

都是正确的,请先学习SQL的基础知识

一样的