ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

标准化SQLHelp数据库通用访问类

2022-01-20 13:59:24  阅读:175  来源: 互联网

标签:SQLHelp 数据库 cmd 标准化 实例 static new public conn


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
using System.Configuration;

namespace SQLDB
{
public class SqlHelp
{
//链接数据库字符串
private static string connString = ConfigurationManager.ConnectionStrings[“connString”].ToString();
//定义conn
public static SqlConnection conn;
//定义全局变量
public static SqlDataAdapter sda;
//定义全局变量
public static SqlCommandBuilder scb;
//定义全局变量DataSet
public static DataSet ds;
//定义全局变量
public static SqlCommand cmd;
#region 标准化SQL语句的执行,包含连接模式和非链接模式
//===链接连接模型
///
/// 执行增删改
///
/// T-SQL语句
/// 受影响的行数
public static int GetExecuteNonQuery(string sql)
{
//实例化conn
conn = new SqlConnection(connString);
//实例化cmd
SqlCommand cmd = new SqlCommand(sql, conn);
//打开
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{

            throw ex;
        }
        finally
        {
            conn.Close();
        }

    }
    /// <summary>
    /// 查询第一行第一列
    /// </summary>
    /// <param name="sql">T-SQL语句</param>
    /// <returns>返回OBJECT类型</returns>
    public static object GetExecuteScalar(string sql)
    {//实例化conn
        conn = new SqlConnection(connString);
        //实例化cmd
        SqlCommand cmd = new SqlCommand(sql, conn);
        //执行
        try
        {
            conn.Open();
            return cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            conn.Close();
        }

    }
    /// <summary>
    /// 读取所有行数据
    /// </summary>
    /// <param name="sql">T-SQL语句</param>
    /// <returns>返回DataRead</returns>
    public static SqlDataReader GetExecuteReader(string sql)
    {
        //实例化conn
        conn = new SqlConnection(connString);
        //实例化cmd
        SqlCommand cmd = new SqlCommand(sql, conn);
        //执行
        try
        {
            //打开
            conn.Open();
            SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            return sdr;
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }
    //========================非连接模型下的方法=========================
    /// <summary>
    /// 通过键值对的方式获得DataSet的Table带有表名称和主键
    /// </summary>
    /// <param name="TableKeyValues">Dictionary键值对《表名称,SQL语句》</param>
    /// <param name="TableKey">表的主键</param>
    /// <returns>返回带有主键和表名称的DataSet</returns>
    public static DataSet GetAllInfoToDataSet(Dictionary<string, string> TableKeyValues, string TableKey)
    {
        //实例化dataSet
        ds = new DataSet();
        //实例化conn
        conn = new SqlConnection(connString);
        try
        {
            //循环遍历dic获得键值对
            foreach (KeyValuePair<string, string> item in TableKeyValues)
            {
                //实例化cmd
                cmd = new SqlCommand(item.Value, conn);
                //实例化dataadapter
                sda = new SqlDataAdapter(cmd);
                //定义类型
                sda.SelectCommand = cmd;
                //实例化SqlcommandB
                scb = new SqlCommandBuilder(sda);
                //打开
                conn.Open();
                //填充数据
                sda.Fill(ds, item.Key);
                //为表添加主键
                ds.Tables[item.Key].PrimaryKey = new DataColumn[] { ds.Tables[item.Key].Columns[TableKey] };
            }
            return ds;
        }
        catch (Exception)
        {

            throw;
        }
        finally
        {
            conn.Close();
        }


    }
    //更新DataSet到数据库
    public static void UpdataStudentInfo(string TableName)
    {
        conn.Open();
        sda.Update(ds, TableName);
        conn.Close();
    }
    #endregion
    #region 参数化SQL语句执行
    /// <summary>
    /// 参数化SQL语句执行增删改
    /// </summary>SELECT SNO, SName, Gender, Birthday, Mobile, Email, HomeAddress, PhotoPath  FROM Student where SNO LIKE @SNO AND SName Like @SName  AND  Mobile Like @Mobile"
    /// <param name="sql">T-SQL带参数的语句</param>
    /// <param name="para">调用参数</param>
    /// <returns>返回受影响的行数,</returns>
    public static int GetExecuteNonQuery(string sql,SqlParameter[] para)
    {
        //实例化conn
       conn = new SqlConnection(connString);
        //实例化cmd
         cmd = new SqlCommand(sql, conn);
        //执行
        try
        {
            //打开conn
            conn.Open();
            //执行
            cmd.Parameters.AddRange(para);
            return cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {

            throw ex;
        }
        finally
        {
            conn.Close();
        }
    }
/// <summary>
/// 参数化SQL语句执行查询单个结果集,第一行第一列
/// </summary>
/// <param name="sql">SQL带参数的语句</param>
/// <param name="para">调用参数的数组</param>
/// <returns>返回第一行第一列Object类型</returns>
    public static object GetExecuteScalar(string sql,SqlParameter[] para)
    {
        //实例化conn
        conn = new SqlConnection(connString);
        //实例化cmd
        cmd = new SqlCommand(sql, conn);
        //执行
        try
        {
            conn.Open();
            //添加参数化
            cmd.Parameters.AddRange(para);
            //返回单个结果集
            return cmd.ExecuteScalar();
        }
        catch (Exception)
        {

            throw;
        }
        finally
        {
            conn.Close();
        }
    }
    /// <summary>
    /// 返回多个结果集
    /// </summary>
    /// <param name="sql">带有参数的SQL语句</param>
    /// <param name="para">参数的数组</param>
    /// <returns>返回DataReader多个结果集</returns>
    public static SqlDataReader GetExecuteReader(string sql,SqlParameter[]para)
    {
        //实例化conn
        conn = new SqlConnection(connString);
        //实例化comd
        cmd = new SqlCommand(sql, conn);
        //执行
        try
        {
            //打开
            conn.Open();
            //将参数化赋值给cmd
            cmd.Parameters.AddRange(para);
            //返回
            return cmd.ExecuteReader(CommandBehavior.CloseConnection);
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }
    #endregion
   
}

}

标签:SQLHelp,数据库,cmd,标准化,实例,static,new,public,conn
来源: https://blog.csdn.net/cuibaoming/article/details/122600105

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有