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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 靳石磊 中级黑马   /  2013-1-23 16:23  /  2508 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

例如,我要配置一个SqlCommand对象,查找name为张三的人的信息:
string name=“张三”;
SqlCommand comm = new SqlCommand("select *  from table1where name="+name, conn)
这样写产生错误,那应该怎么写呢?

评分

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

查看全部评分

5 个回复

正序浏览
在拼接sql字符串的时候,要注意是否加上单引号,也就表示它为字符串类型,如果不加单引号执行会报错
修改一下:"select *  from table1where name=‘ " + name + " ' "
一般数值类型不用加单引号,非数值类型的都可以加或必须加!

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

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
string sql = string.Format(@"select name from table1 where name={0}",name);
先连接数据库在写SQL查询语句,然后new command对象,用里面的ExecuteScalar()看是否返回一行一列的值

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
不会用c#调用数据库,但是还是  顶一个
回复 使用道具 举报
string sql = "select * from table where id=" + name + "and password="+id;
第一段字符串是
"select * from table where id="   
然后用+号连接name
然后再用+连接最后面的结尾

评分

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

查看全部评分

回复 使用道具 举报
name的值也是需要用“”来包裹的,你写的sql语句连接出来 的是select *  from table1where name=张三; 但是正确的语法应该是select *  from table1where name="张三";

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

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

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

可以试试看

评分

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

查看全部评分

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