zoukankan      html  css  js  c++  java
  • 字符串操作点滴

             对字符串进行操作,其实.net里面提供了很多方法,这里想要总结的,主要是针对数据库操作的时候需要构造sql的查询语句的时候对字符串操作的一些方法。
             从最简单的一条查询语句看起。
             比如"SELECT dwSpecialCureAction, dwMacroCureAction, dwSpecialMode FROM Policy_VirusScan_RealTime WHERE  PolicyGroupID=7 AND OwnReginId='zy' AND PolicyId=43"其中where后面跟的三个字段用到了3个变量。
            这里就有很多种方法,可以构造这样一个语句。
            第一个办法可以把sql语句写成这样,带三个参数,
            "SELECT dwSpecialCureAction, dwMacroCureAction, dwSpecialMode FROM Policy_VirusScan_RealTime WHERE  PolicyGroupID=@PolicyGroupID AND OwnReginId=@OwnReginId AND PolicyId=@PolicyId"
            在进行数据库操作的时候使用带参数的重载方法。不过我对用参数这种方法应用比较少,对这个方法不太熟悉,基本上都不用这种方法。

            第二个办法就是拼字符串的方法了。
         string PolicyGroupID="7";
         string OwnReginId="zy";
         string PolicyId="43";
          string sql="SELECT dwSpecialCureAction, dwMacroCureAction, dwSpecialMode FROM Policy_VirusScan_RealTime WHERE  PolicyGroupID="+PolicGroupID+"AND OwnReginId='"+OwnReginId+"'"+" AND PolicyId="+PolicyId;
           简单的用+号把几个字符串连接起来,很象是在拼凑的一个句子,不过还是很有效的。

           第三个方法是用string.Format()方法。
         string PolicyGroupID="7";
         string OwnReginId="zy";
         string PolicyId="43";

          string sql=string.Format("SELECT dwSpecialCureAction, dwMacroCureAction, dwSpecialMode FROM Policy_VirusScan_RealTime WHERE PolicyGroupID={0} AND OwnReginId='{1}' AND PolicyId={2}",PolicyGroupID,OwnReginId,PolicyId)
           曾经有一段时间很喜欢这种方法,甚至大部分的代码都是这样写的,也行之有效,但是这样有一个比较大的缺点,对比较短的sql 确实很好用,但是如果参数比较多,表结构比较复杂,一旦sql出错,调试起来非常让人头大。当然如果经历过了调试,完全正确的话,不用说,这是非常好的方法。

            第四个方法是用StringBuilder 方法
         使用StringBuilder类必须引用
         using System.Text;

         string PolicyGroupID="7";
         string OwnReginId="zy";
         string PolicyId="43";

           StringBuilder sql = new StringBuilder();
            sql.Append("SELECT dwSpecialCureAction, dwMacroCureAction, dwSpecialMode");
            sql.Append(" FROM "+TableName[int.Parse(ViewState["VirusPolicyId"].ToString())]);
            sql.Append(" WHERE ");
            sql.Append(" PolicyGroupID="+PolicyGroupID);
            sql.Append(" AND OwnReginId='"+OwnReginId+"'");
            sql.Append(" AND PolicyId="+PolicyId);
           
            StringBuilder类要转换成string类型,强类型转换是不行的,必须使用自带的方法。
            sql.ToString();
            在我的理解中StringBuilder和string 一样,都是对可以对字符串进行操作的方法。这种方法看起来代码似乎很多,但是确是我最近比较喜欢用的一个方法。这种方法的好处是把select ,from where以及各个参数分开来写,这样一方面看起来比较方便,如果出错的话,能够迅速找到出错的字段并进行修改。而且从团队来考虑的话,可读性更强一些。

            以上写了这么多种我比较常用的方法,这里想请高手指点一下,主要用于构造sql语句的时候,哪种方法更常用,或者符合开发习惯,效率更高一些?
  • 相关阅读:
    指令周期与机器周期
    MFC使用Access数据库
    函数指针的用途
    大端模式和小端模式
    Matlab信号展开
    EL表达式的11个内置对象
    JSP 4个域对象、7个动作指令、9个内置对象
    阿里巴巴java代码规范
    HDDATA基本注意事项
    SVN相关
  • 原文地址:https://www.cnblogs.com/bingxuefly/p/563581.html
Copyright © 2011-2022 走看看