SqlHelper类

工作的时候我用的最多的是Orcal数据库,但是写小程序和Dome的时候,我喜欢用Sql Server数据库,SqlHelper类是最基本的与数据库交互的类,记录下来,下次用的时候直接拷贝。

  public static class SqlHelper
    {
        static string connection = "Data Source=.;Initial Catalog=Exercise;Integrated Security=True";//数据库连接字符串
        /// <summary>
        /// 返回受影响的行数
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="sp">参数</param>
        /// <returns></returns>
        public static int ExcuteNonQuery(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.CommandText = sql;
                    cmd.Connection = conn;
                    cmd.Parameters.AddRange(sp);
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// 返回首行首列的值
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="sp">参数</param>
        /// <returns></returns>
        public static int ExcuteScalre(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(sp);
                    return (int)cmd.ExecuteScalar();
                }
            }
        }
        /// <summary>
        /// 返回DataTable类型的数据
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="sp">参数</param>
        /// <returns></returns>
        public static DataTable ExcuteDataTable(string sql, params SqlParameter[] sp)
        {
            using (SqlConnection conn = new SqlConnection(connection))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(sp);
                    DataTable dt = new DataTable();
                    using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
                    {
                        adapter.Fill(dt);
                    }
                    return dt;
                }
            }
        }
        /// <summary>
        /// 返回SqlDataReader
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <param name="sp">参数</param>
        /// <returns></returns>
        public static SqlDataReader ExcuteSqlDataReader(string sql, params SqlParameter[] sp)
        {
            SqlConnection conn = new SqlConnection(connection);
            conn.Open();
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.AddRange(sp);
            SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return reader;
        }
    }
ExcuteNonQuery(): 查询语句不能用,如果用ExcuteNonQuery执行查询语句,返回值会是 -1,UPDATE、INSERT 和 DELETE用的最多.
ExcuteScalre(): 一般情况下,查询语句用多一点。

原文地址:https://www.cnblogs.com/zhangjd/p/5708153.html