none
关于C#一点小问题 RRS feed

  • 问题

  • 在书上看到这么一句话:

    string sql = "insert into A values('"+a+"',"+b+",'"+c+"','"+d+"')";

    其中a,b,c,d是前面定义的几个变量,需要把他们的值更新到数据库中。我的问题是:引号的使用规则。

    看了半天也不明白上面单引号和双引号应该怎么用,请高人指点。

    2012年5月30日 9:49

答案

  • sql语句里面的引号:所有非数字型的值都需要加单引号: 比方说 select * from student where sname='张三',这里理解没有问题吧
    然后是C#里面的引号:
    单引号:字符
    例如:char c='a';
    双引号:字符串
    string sql="select * from student";

    但是像刚刚的那个sql语句里面含有单引号怎么办呢?这个是就要用到字符串的拼接了
    你的字符串可以这样理解:
    string sql="insert into A values('";
    你的a既然也是字符串,可以这样理解: 两个字符串的拼接.注意前面的sql包含了单引号.
    如果加上你的a变量.并且假使你的a变量的值是张三,这个时候你的sql的值就变成了"insert into A values('张三"
    这个时候的sql语句是去掉双引号的内容 insert into A values('张三
    是不是还少了一个单引号和后括号.同样在后面继续添加字符串"')".
    字符串的拼接就成你的那样了:

    string sql = "insert into A values('"+a+"',"+b+",'"+c+"','"+d+"')";


    不知道这样说你能理解不
    到后面都是用sql参数,一步一步来


    • 已编辑 dpyang 2012年5月30日 10:22
    • 已标记为答案 司墨 2012年5月30日 10:51
    2012年5月30日 10:22