黑马程序员技术交流社区

标题: 在C#中写sql语句,怎么连接变量 [打印本页]

作者: 靳石磊    时间: 2013-1-23 16:23
标题: 在C#中写sql语句,怎么连接变量
例如,我要配置一个SqlCommand对象,查找name为张三的人的信息:
string name=“张三”;
SqlCommand comm = new SqlCommand("select *  from table1where name="+name, conn)
这样写产生错误,那应该怎么写呢?
作者: 黑马刘俊    时间: 2013-1-23 17:31
name的值也是需要用“”来包裹的,你写的sql语句连接出来 的是select *  from table1where name=张三; 但是正确的语法应该是select *  from table1where name="张三";

所以如果你一定要使用+好来构建字符串的话,要注意引号也要连接进去,大概要写成

SqlCommand comm = new SqlCommand("select *  from table1where name="+"\""+name+"\"", conn)

这样连接出来后就是select *  from table1where name="张三";

可以试试看

作者: 罗志强    时间: 2013-1-23 17:40
string sql = "select * from table where id=" + name + "and password="+id;
第一段字符串是
"select * from table where id="   
然后用+号连接name
然后再用+连接最后面的结尾
作者: 万建华    时间: 2013-1-23 21:01
不会用c#调用数据库,但是还是  顶一个
作者: 潘望    时间: 2013-2-4 22:03
string sql = string.Format(@"select name from table1 where name={0}",name);
先连接数据库在写SQL查询语句,然后new command对象,用里面的ExecuteScalar()看是否返回一行一列的值
作者: 乔培培    时间: 2013-2-5 12:46
在拼接sql字符串的时候,要注意是否加上单引号,也就表示它为字符串类型,如果不加单引号执行会报错
修改一下:"select *  from table1where name=‘ " + name + " ' "
一般数值类型不用加单引号,非数值类型的都可以加或必须加!

建议使用参数化的方式 ,可有效防止SQL注入




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2