public class SqlStringFormat
{
/// <summary>
/// 公有静态方法,将文本转换成适合在Sql语句里使用的字符串。
/// </summary>
/// <returns>转换后文本</returns>
public static String GetQuotedString(String pStr)
{
return ("'" + pStr.Replace("'","''") + "'");
}
}
这个类用于处理sql语句中需要引号的的字符,时间等,个人感觉很好,但是有个疑问。在sql语句中,需要引号的部分一般是这样'string',那为什么该语句不是这样:
("'" + pStr.Replace+ "'")
而是多出一大堆引号?
希望大家帮忙解答一下("'","''") 这部分是做什么用的?
{
/// <summary>
/// 公有静态方法,将文本转换成适合在Sql语句里使用的字符串。
/// </summary>
/// <returns>转换后文本</returns>
public static String GetQuotedString(String pStr)
{
return ("'" + pStr.Replace("'","''") + "'");
}
}
这个类用于处理sql语句中需要引号的的字符,时间等,个人感觉很好,但是有个疑问。在sql语句中,需要引号的部分一般是这样'string',那为什么该语句不是这样:
("'" + pStr.Replace+ "'")
而是多出一大堆引号?
希望大家帮忙解答一下("'","''") 这部分是做什么用的?
/// 公有静态方法,将文本转换成适合在Sql语句里使用的字符串。
/// </summary>
/// <returns>转换后文本 </returns>
//public static String GetQuotedString(String pStr)
//{
//return ("'" + pStr.Replace("'","''") + "'");
//} public static String GetQuotedString(String pStr)
{
// 将 ' 单引号 替换为 '' 双单引号 ,而不是双引号
String afterRep = pStr.Replace(",","''")
// 将所有字符串数据放入到 '内容' 所引用的内容
return String.Format("'{0}'", afterRep);
} 不知道这样解释,是否明白了 ?'string'
public static String GetQuotedString(String pStr)
{
return ("'" + pStr.Replace("'","''") + "'");
///pStr.Replace("'","''") 这里是把单引号替换成两个单引号,这个我知道。但是这个单引号指的是哪里的单引号?是不是
///最前面("'"和最末尾的"'");这里的单引号,如果是,那么实际转换出来的内容应该是''string'',那么,这个''string''
///有什么用呢?sql语句中,字符串只要'string'这样表示就行了,为什么非要''string''这样表示呢?我知道两个单引号是
///一时单引号号的意思,可为什么代码里还要转义一遍,直接返回'string'不就行了吗?
///如果不是,那么pStr.Replace("'","''") 这句中,"''"替换的是什么?
}
------
这个单引号是pStr中的单引号...因为在SQL字符串中'号是字符串值边界符,会出错...如let's go...拼SQL字符串容易出错、安全性差、效率低下...好好学学 DbParameter 吧...
使用拼接sql方式,多数是个人或未成规模的公司做的事情