通用的DB/SQLhelp方法

本文详细介绍了一种使用C#进行数据库操作的方法,包括如何获取连接字符串、执行查询、增删改等常见操作。通过示例代码,读者可以学习到如何利用参数化查询提高安全性,以及如何处理查询结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通用的DB/SQLhelp方法

第一种:

        //获取连接字符串
        private static readonly string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;

        /// <summary>
        /// 登录的方法,查询的是第一行数据
        /// </summary>
        /// <param name="sql">sql查询语句</param>
        /// <param name="param">查询用的参数</param>
        /// <returns>返回值是第一行第一列的值</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] param)
        {
            //连接数据库
            using (SqlConnection sqlConn = new SqlConnection(connStr))
            {
                //打开数据库
                sqlConn.Open();
                //判断是否打开数据库,如果没有打开数据库则打开数据库
                if (sqlConn.State == ConnectionState.Closed)
                {
                    //打开数据库
                    sqlConn.Open();
                }
                //创建sql命令对象
                using (SqlCommand sqlCmd = new SqlCommand(sql, sqlConn))
                {
                    //添加参数化查询的对应关系
                    //判断是否有参数
                    if (param != null)
                    {
                        sqlCmd.Parameters.AddRange(param);
                    }
                    //返回值是第一行第一列的值
                    return sqlCmd.ExecuteScalar();
                }
            }
        }

        /// <summary>
        /// 执行查询
        /// </summary>
        /// <param name="sql">查询语句</param>
        /// <param name="param">查询语句的参数</param>
        /// <returns>查询的数据表</returns>
        public static DataTable ExecQuery(string sql, params SqlParameter[] param)
        {
            //连接数据库
            using (SqlConnection sqlConn = new SqlConnection(connStr))
            {
                //判断是否打开数据库,如果没有打开数据库则打开数据库
                if (sqlConn.State == ConnectionState.Closed)
                {
                    //打开数据库
                    sqlConn.Open();
                }
                //创建sql命令对象
                using (SqlCommand sqlCmd = new SqlCommand(sql, sqlConn))
                {
                    //判断是否有参数
                    if (param != null)
                    {
                        sqlCmd.Parameters.AddRange(param);
                    }
                    //对sql语句查询到的数据进行传输
                    SqlDataAdapter SqlDataAdapter = new SqlDataAdapter(sqlCmd);
                    //实例化一张表
                    DataTable table = new DataTable();
                    //将从数据库中查询到的数据填充到数据表中
                    SqlDataAdapter.Fill(table);
                    //返回这张表
                    return table;
                }
            }

        }
        /// <summary>
        /// 执行增删改
        /// </summary>
        /// <param name="sql">执行的SQL语句</param>
        /// <param name="param">sql语句的 参数</param>
        /// <returns>是否执行成功,true则成功,false失败</returns>
        public static bool ExecNonQuery(string sql, params SqlParameter[] param)
        {
            //连接数据库
            using (SqlConnection sqlConn = new SqlConnection(connStr))
            {
                //打开数据库
                sqlConn.Open();
                //判断是否打开数据库,如果没有打开数据库则打开数据库
                if (sqlConn.State == ConnectionState.Closed)
                {
                    //打开数据库
                    sqlConn.Open();
                }
                //创建sql命令对象
                using (SqlCommand sqlCmd = new SqlCommand(sql, sqlConn))
                {
                    //添加参数化查询的对应关系
                    //判断是否有参数
                    if (param != null)
                    {
                        sqlCmd.Parameters.AddRange(param);
                    }
                    //定义一个变量接受修改的行数
                    int res = sqlCmd.ExecuteNonQuery();
                    //如果大于0,sql语句执行成功,小于0失败
                    if (res > 0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
            }
        }

第二种:

public int ExeQCommand(string sql, params SqlParameter[] pams)
        {
            try
            {
                string constr = "Data Source=.;Initial Catalog=Logistics;Integrated Security=True";
                using (SqlConnection conn = new SqlConnection(constr))
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        if (pams != null|| pams.Length>0)
                        {
                            cmd.Parameters.AddRange(pams);
                        }
                        return cmd.ExecuteNonQuery();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public int ExeScalerCommand(string sql, params SqlParameter[] pams)
        {
            try
            {
                string constr = "Data Source=.;Initial Catalog=Logistics;Integrated Security=True";
                using (SqlConnection conn = new SqlConnection(constr))
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        if (pams != null || pams.Length > 0)
                        {
                            cmd.Parameters.AddRange(pams);
                        }
                        return Convert.ToInt32(cmd.ExecuteScalar());
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public SqlDataReader ExeReaderCommand(string sql, params SqlParameter[] pams)
        {
            try
            {
                string constr = "Data Source=.;Initial Catalog=Logistics;Integrated Security=True";
                using (SqlConnection conn = new SqlConnection(constr))
                {
                    conn.Open();
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        if (pams != null || pams.Length > 0)
                        {
                            cmd.Parameters.AddRange(pams);
                        }
                        return cmd.ExecuteReader();
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public DataTable Adapter(string sql, params SqlParameter[] pams)
        {
            try
            {
                //配置连接字段
                string constr = "Data Source=.;Initial Catalog=Logistics;Integrated Security=True";
                //连接数据库
                using (SqlConnection conn = new SqlConnection(constr))
                {
                    //打开数据库
                    conn.Open();
                    //读取数据源并操作
                    using (SqlDataAdapter da = new SqlDataAdapter(sql, conn))
                    {
                        //如果变量和长度都不为空
                        if (pams != null || pams.Length > 0)
                        {
                            //那就添加sql语句
                            da.SelectCommand.Parameters.AddRange(pams);
                        }
                        //创建暂存区
                        DataSet ds = new DataSet();
                        //把数据填充到dataset
                        da.Fill(ds);
                        //返回表中的第一行
                        return ds.Tables[0];
                    }
                }
            }
            //抛出异常
            catch (Exception ex)
            {
                throw ex;
            }
        }
不懂的私聊博主!博主一一讲解!


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思丰百年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值