A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Configuration;
  6. using System.Data.SqlClient;
  7. using System.Text.RegularExpressions;
  8. using System.Data;

  9.     public class TSQLServer
  10.     {

  11.         #region 获取数据库连接字符串
  12.         static string connectionString = string.Empty;
  13.         public static string GetConnstr()
  14.         {
  15.            connectionString = ConfigurationManager.ConnectionStrings["SQLConnString"].ConnectionString;

  16.            return connectionString;
  17.         }
  18.         #endregion

  19.         #region 获取连接字符串进行数据判断
  20.         /// <summary>
  21.         /// 获取连接字符串SqlConn进行数据判断,返回连接
  22.         /// </summary>
  23.         /// <param name="connstr">数据库连接字符串</param>
  24.         /// <returns>返回数据连接字符串</returns>
  25.         public static SqlConnection SqlConn(string connstr)
  26.         {
  27.             SqlConnection conn = new SqlConnection();
  28.             if (connstr.ToString() == "")
  29.             {
  30.                 connstr = GetConnstr();
  31.             }
  32.             conn.ConnectionString = connstr;
  33.             return conn;
  34.         }
  35.         #endregion

  36.         #region 创建数据库连接命令,判断数据字符数组
  37.         /// <summary>
  38.         /// 创建数据库连接命令,判断数据字符数组
  39.         /// </summary>
  40.         /// <param name="conn">连接字符串</param>
  41.         /// <param name="Sql">Sql语句</param>
  42.         /// <param name="p">字符串数组</param>
  43.         /// <param name="s">对象</param>
  44.         /// <returns>返回命令对象</returns>
  45.         public static SqlCommand SqlCmd(SqlConnection conn, string Sql, string[] p, params object[] s)
  46.         {
  47.             SqlCommand cmd = new SqlCommand(Sql, conn);
  48.             if (p == null || p.Length == 0)
  49.             {
  50.                 Regex re = new Regex(@"@[a-zA-Z0-9]+", RegexOptions.IgnoreCase);
  51.                 Match m = re.Match(Sql);
  52.                 int i = 0;
  53.                 List<string> str = new List<string>();
  54.                 while (m.Success)
  55.                 {
  56.                     if (i == s.Length)
  57.                     {
  58.                         break;
  59.                     }
  60.                     if (!str.Contains(m.Value))
  61.                     {
  62.                         cmd.Parameters.AddWithValue(m.Value, s[i]);
  63.                         str.Add(m.Value);
  64.                         i++;
  65.                     }
  66.                     m = m.NextMatch();
  67.                 }
  68.             }
  69.             else
  70.             {
  71.                 for (int i = 0; i < p.Length; i++)
  72.                 {
  73.                     if (i == s.Length)
  74.                     {
  75.                         break;
  76.                     }
  77.                     cmd.Parameters.AddWithValue(p[i], s[i]);
  78.                 }
  79.             }

  80.             return cmd;
  81.         }
  82.         #endregion

  83.         #region 得到数据库执行错误信息
  84.         /// <summary>
  85.         /// 得到数据库执行错误信息
  86.         /// </summary>
  87.         /// <param name="ex">错误信息</param>
  88.         /// <param name="Sql">执行Sql语句</param>
  89.         /// <param name="p"></param>
  90.         /// <param name="s"></param>
  91.         public static void getError(Exception ex, string Sql, string[] p, object[] s)
  92.         {
  93.             string msg = ex.Message + "\r\n\r\nSql(ProcedureName):\r\n" + Sql;
  94.             if (p != null) msg += "\r\n\r\nParams:\r\n" + string.Join(",", p);
  95.             if (s != null) msg += "\r\n\r\nValues:\r\n" + string.Join("\r\n", Array.ConvertAll(s, new Converter<object, string>(c => c.ToString())));
  96.             throw new Exception(msg);
  97.         }
  98.         #endregion

  99.         #region 执行非查询ExecuteNonQuery返回受影响的行数,增加,修改,删除

  100.         public static int ExecuteNonQuery(string Sql, params object[] s)
  101.         {
  102.             return ExecuteNonQueryWithOther(Sql, "", null, s);
  103.         }

  104.         public static int ExecuteNonQuery(string Sql, string[] p, params object[] s)
  105.         {
  106.             return ExecuteNonQueryWithOther(Sql, "", p, s);
  107.         }

  108.         public static int ExecuteNonQueryWithOther(string Sql, string connstr, params object[] s)
  109.         {
  110.             return ExecuteNonQueryWithOther(Sql, connstr, null, s);
  111.         }

  112.         public static int ExecuteNonQueryWithOther(string Sql, string connstr, string[] p, params object[] s)
  113.         {
  114.             SqlConnection conn = SqlConn(connstr);
  115.             conn.Open();
  116.             SqlCommand cmd = SqlCmd(conn, Sql, p, s);
  117.             int result = 0;
  118.             try
  119.             {
  120.                 result = cmd.ExecuteNonQuery();
  121.             }
  122.             catch (Exception ex)
  123.             {
  124.                 getError(ex, Sql, p, s);
  125.             }
  126.             cmd.Dispose();
  127.             conn.Close();
  128.             conn.Dispose();
  129.             return result;
  130.         }
  131.         #endregion

  132.         #region 执行Sql语句返回DataRow一行数据信息
  133.         /// <summary>
  134.         /// 执行Sql语句返回DataRow一行数据信息
  135.         /// </summary>
  136.         /// <param name="sql">sql语句</param>
  137.         /// <param name="s">参数集合</param>
  138.         /// <returns></returns>
  139.         public static DataRow ExecDr(string sql, params object[] s)
  140.         {
  141.             return ExecDrWithOther(sql, "", null, s);
  142.         }
  143.         public static DataRow ExecDr(string sql, string[] p, params object[] s)
  144.         {
  145.             return ExecDrWithOther(sql, "", p, s);
  146.         }
  147.         public static DataRow ExecDrWithOther(string sql, string connstr, params object[] s)
  148.         {
  149.             return ExecDrWithOther(sql, connstr, null, s);
  150.         }
  151.         public static DataRow ExecDrWithOther(string sql, string connstr, string[] p, params object[] s)
  152.         {
  153.             DataSet ds = new DataSet();
  154.             SqlDataAdapter da = new SqlDataAdapter();
  155.             SqlConnection conn = SqlConn(connstr);
  156.             conn.Open();
  157.             SqlCommand cmd = SqlCmd(conn, sql, p, s);
  158.             da.SelectCommand = cmd;
  159.             try
  160.             {
  161.                 da.Fill(ds);
  162.             }
  163.             catch (Exception ex)
  164.             {
  165.                 getError(ex, sql, p, s);
  166.             }
  167.             DataRow dr = null;
  168.             try
  169.             {
  170.                 dr = ds.Tables[0].Rows[0];
  171.             }
  172.             catch { }
  173.             da.Dispose();
  174.             ds.Dispose();
  175.             cmd.Dispose();
  176.             conn.Close();
  177.             conn.Dispose();
  178.             return dr;
  179.         }
  180.         #endregion

  181.         #region 执行Sql语句返回DataTable数据信息
  182.         /// <summary>
  183.         /// 执行Sql语句返回DataTable数据信息
  184.         /// </summary>
  185.         /// <param name="Sql"> 执行查询Sql语句</param>
  186.         /// <param name="s">获取传递Sql参数集合</param>
  187.         /// <returns>根据条件返回一个dataTable</returns>
  188.         public static DataTable ExecDt(string Sql, params object[] s)
  189.         {
  190.             return ExecDtWithOther(Sql, "", null, s);
  191.         }
  192.         public static DataTable ExecDt(string Sql, string[] p, params object[] s)
  193.         {
  194.             return ExecDtWithOther(Sql, "", p, s);
  195.         }
  196.         public static DataTable ExecDtWithOther(string Sql, string connstr, params object[] s)
  197.         {
  198.             return ExecDtWithOther(Sql, connstr, null, s);
  199.         }
  200.         public static DataTable ExecDtWithOther(string Sql, string connstr, string[] p, params object[] s)
  201.         {
  202.             DataSet ds = new DataSet();
  203.             SqlDataAdapter da = new SqlDataAdapter();
  204.             SqlConnection conn = SqlConn(connstr);
  205.             conn.Open();
  206.             SqlCommand cmd = SqlCmd(conn, Sql, p, s);
  207.             da.SelectCommand = cmd;
  208.             try
  209.             {
  210.                 da.Fill(ds);
  211.             }
  212.             catch (Exception ex)
  213.             {
  214.                 getError(ex, Sql, p, s);
  215.             }
  216.             DataTable dt = null;
  217.             try
  218.             {
  219.                 dt = ds.Tables[0];
  220.             }
  221.             catch { }
  222.             da.Dispose();
  223.             ds.Dispose();
  224.             cmd.Dispose();
  225.             conn.Close();
  226.             conn.Dispose();

  227.             return dt;
  228.         }
  229.         #endregion
  230.     }
复制代码


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马