你这个应该是c#的语法"SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '" + str产品编号 + "')"; 双引号: "SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '" 是一对"')"是一对当这个c#的语句被执行后。会变成SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '001')假设编号是001 所以两个单引号就是一对了
你这个是在程序中的sql字符串,你应该这么看 "SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '" + str产品编号 (变量) + "')"分解看 第一行是一个字符串+一个变量+字符串,哪个'单引号是为了构造出的sql语句给 str产品编号 这个变量带上引号 假如str产品编号 = '001' 即在sql中将变成 SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '001')
由于外面已经有两个引号了,所以里面会有3可以print出来看看 实际效果就是SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = 'str产品编号')
你这象vb的语法。 整个字符串由三部分组成: 1."SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '" 2.变量 str产品编号 3."')"3部分连接后就成了语句: SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '产品编号')提示:在sql存储过程中也是可以用双引号表示字符串的,不过要设置开关SET QUOTED_IDENTIFIER OFF
双引号:
"SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '" 是一对"')"是一对当这个c#的语句被执行后。会变成SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '001')假设编号是001
所以两个单引号就是一对了
"SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '"
+ str产品编号 (变量)
+ "')"分解看 第一行是一个字符串+一个变量+字符串,哪个'单引号是为了构造出的sql语句给 str产品编号 这个变量带上引号
假如str产品编号 = '001'
即在sql中将变成
SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '001')
实际效果就是SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = 'str产品编号')
整个字符串由三部分组成:
1."SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '"
2.变量 str产品编号
3."')"3部分连接后就成了语句:
SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = '产品编号')提示:在sql存储过程中也是可以用双引号表示字符串的,不过要设置开关SET QUOTED_IDENTIFIER OFF
开发环境要求的字符串必须以“为界定符,其中包含的‘是SQL中区分字符串的必须界定符。
而这句本身就是给另外一个字符串变量赋值,前面两个双引号之间是一个客串,在加上str产品编号,然后最后两个双引号之间是另外一个字符串,两个单引号是在SQL中执行要用到的,因为WHERE (fcp_bh = '" + str产品编号 + "') 执行的是 where (fcp_bh='cp01') ,如果不加的话,就是 where (fcp_bh=cp01),而这在SQL中是执行不了的。
str产品编号 --第二段
') --第三段
--连起来就是
SELECT fproduct_id FROM PM_Product WHERE (fcp_bh = 'str产品编号')
--因为这段语句整个被当成了一个string了(我估计),所以要用""。