zoukankan      html  css  js  c++  java
  • C# DBHelper 数据库连接帮助类

    DBHelper 帮助类

    1.作用:将C#应用程序与SQL SERVER数据库交互的公共方法(增删改查)提取出来,方便调用。

    2.要求:C#入门级程序员必须熟练掌握编写

    3.组成:三个公用方法。

    ①ExecuteNonQuery   增删改

    ②ExecuteScalar  查询返回单行单列

    ③ExecuteQuery  查询返回多行多列

    4.代码明细:

    public class DBHelper
        {
            public static string strConn = "Server=01D023101509880;uid=CG;pwd=abc.1234;Database=QQChat";
            /// <summary>
            /// 增、删、改通用方法
            /// </summary>
            /// <param name="Sql">SQL 语句</param>
            /// <param name="paras">可选参数</param>
            /// <returns></returns>
            public static int ExecuteNonQuery(string Sql, params SqlParameter[] paras)
            {
                int result = 0;
                //using 自动关闭资源,自带异常处理机制
                using (SqlConnection conn = new SqlConnection(strConn))
                {
                    conn.Open();//打开连接
                    SqlCommand command = new SqlCommand(Sql, conn);//执行命令
                    command.Parameters.AddRange(paras);//加入参数
                    result = command.ExecuteNonQuery(); //执行 
                }
                return result;
            }
            /// <summary>
            /// 查询单行当列
            /// </summary>
            /// <param name="Sql">SQL 语句</param>
            /// <param name="paras">可选参数</param>
            /// <returns></returns>
            public static Object ExecuteScalar(string Sql, params SqlParameter[] paras)
            {
                Object result;
                //using 自动关闭资源,自带异常处理机制
                using (SqlConnection conn = new SqlConnection(strConn))
                {
                    conn.Open();//打开连接
                    SqlCommand command = new SqlCommand(Sql, conn);//执行命令
                    command.Parameters.AddRange(paras);//加入参数
                    result = command.ExecuteScalar(); //执行 
                }
                return result;
            }
            /// <summary>
            /// 查询返回多行多列;泛型升级未知对象类型;泛型类,泛型方法
            /// </summary>
            /// <param name="Sql">SQL 语句</param>
            /// <param name="paras">可选参数</param>
            /// <returns></returns>
            public static List<T> ExecuteQuery<T>(string Sql, params SqlParameter[] paras)
            {
                List<T> list = new List<T>();//创建泛型集合对象
                using (SqlConnection conn = new SqlConnection(strConn))
                {
                    conn.Open();//打开连接
                    SqlCommand command = new SqlCommand(Sql, conn);//执行命令
                    command.Parameters.AddRange(paras);//加入参数
                    using (SqlDataReader reader = command.ExecuteReader())//执行游标
                    {
                        Type type = typeof(T);//检测类型
                        //next 往下执行
                        while (reader.Read())
                        {
                            //创建对象
                            T t=(T)Activator.CreateInstance(type);
                            foreach(PropertyInfo pi in type.GetProperties()) //反射 PropertyInfo类获取基类的属性
                            {
                                pi.SetValue(t, reader[pi.Name] is DBNull ? null:reader[pi.Name]); //ORM 将游标的值赋给对象
                            }
                            list.Add(t);
                        }
                    }
                }
    
                return list;
            }
    
        }
    }
  • 相关阅读:
    学生排队 201703-2
    让动画停在最后一帧 forwards animation-fill-mode
    新版本的charles代理本地接口
    移动端调试插件Tencent / vConsole
    HDU
    Codeforces Round #668 (Div. 2)(A B C D)
    The 13th Chinese Northeast Collegiate Programming Contest
    2020, XIII Samara Regional Intercollegiate Programming Contest (B D)
    tarjan算法 双连通分量
    Codeforces Round #666 (Div. 2) (A B C D)
  • 原文地址:https://www.cnblogs.com/cuig/p/12593753.html
Copyright © 2011-2022 走看看