zoukankan      html  css  js  c++  java
  • 构造SQL语句两种方法


      #region "构造SQL语句"
      //通过数组
      public string CreateSqlByArry(string TableName,object []Ary,string type)
      {
       string Sql="";
       
       switch(type)
       {
        case "update":
        {
         if(Ary.Length % 2>0)
         {
          return Sql="Fileds,Values Not Matching";
         }
         for(int i=0;i<Ary.Length;i=i+2)
         {
          if(Ary[i+1].GetType().Name=="String" || Ary[i+1].GetType().Name=="DateTime" || Ary[i+1].GetType().Name=="Date")
          {
           Sql = Sql + "," + Ary[i].ToString() + "='" + Ary[i+1].ToString()+"'";
          }
          else
          {
           Sql = Sql + "," +Ary[i].ToString() + "=" + Ary[i+1].ToString();
          }
         }
         Sql=Sql.Remove(0,1);
         Sql= "Update " + TableName + " Set " + Sql;
         break;
        }
        case "insert":
        {
      
         string Field="",Value="";
       
         if(Ary.Length%2>0)
         {
          return Sql="Fileds,Values Not Matching";
         }
       
         for(int i=0;i<Ary.Length;i=i+2)
         {
          if(Ary[i+1].GetType().Name=="String" || Ary[i+1].GetType().Name=="DateTime" || Ary[i+1].GetType().Name=="Date")
          {
           Field = Field + "," + Ary[i].ToString();
           Value = Value + ",'" + Ary[i+1].ToString() + "'";
          }
          else
          {
           Field = Field + "," + Ary[i].ToString();
           Value = Value + "," + Ary[i+1].ToString();
          }
         }
         Field=Field.Remove(0,1);
         Value=Value.Remove(0,1);
         Sql= "Insert Into " + TableName + "(" + Field + ")Values(" + Value + ")" ;
         break;
        }
       }
       return Sql;
       
      }
      

      /// <summary>
      /// //通过Xml
      /// </summary>
      /// <param name="strXml"></param>
      /// <param name="type"></param>
      /// <param name="flag">当flag=="1"时insert,updat 语句值为字符串</param>
      /// <returns></returns>
      public string CreateSqlByXml(string strXml,string type,string flag)
      {
       string Sql="";
       switch(type)
       { 
        case "insert":
        {
         return GetInsertSQL( strXml, flag);
         
        }
        case "update":
        {
         return GetUpdateSQL( strXml, flag);
         
        }   
       }
       return Sql;
      }

      public string GetInsertSQL(string strXML,string flag)
      {
       string SQL = "",str1="",str2="";
       XmlDocument doc = new XmlDocument();
       doc.LoadXml(strXML);
       string first_str = doc.DocumentElement.Name;
       SQL = "insert into "+first_str;
       foreach(XmlNode xn in doc.FirstChild)
       {
        str1 = str1.Length>0?str1+","+xn.Name:xn.Name;
        if(flag.Equals("1"))
        {
         str2 = str2.Length>0?str2+",'"+xn.InnerText+"'":"'"+xn.InnerText+"'";
        }
        else
        {
         str2 = str2.Length>0?str2+","+xn.InnerText:xn.InnerText;
        }
       }
       SQL =SQL+ "("+str1+")values("+str2+")\nselect @@IDENTITY";
       return SQL;
      }

      public string GetUpdateSQL(string strXML,string flag)
      {
       string SQL="",str1="";
       XmlDocument doc = new XmlDocument();
       doc.LoadXml(strXML);
       string first_str = doc.DocumentElement.Name;
       SQL = "update "+first_str+" set ";
       foreach(XmlNode xn in doc.FirstChild)
       {
        if(flag.Equals("1"))
        {
         str1 = str1.Length>0?str1+","+xn.Name+"='"+xn.InnerText+"'":xn.Name+"='"+xn.InnerText+"'";
        }
        else
        {
         str1 = str1.Length>0?str1+","+xn.Name+"="+xn.InnerText:xn.Name+"="+xn.InnerText;
        }
       }
       SQL = SQL+str1;
       return SQL;
      }

      #endregion  

  • 相关阅读:
    hive 三种启动方式及用途
    Nodejs根据字符串调用对象方法
    Hive原理与不足
    [置顶] 面向领域概念:流的思考
    curl的使用
    mysql知识点总结
    中文字符串反转
    《c陷阱与缺陷》之贪心法
    静态数据成员和静态成员函数
    常成员函数 int fun() const;
  • 原文地址:https://www.cnblogs.com/discoverx/p/726382.html
Copyright © 2011-2022 走看看