zoukankan      html  css  js  c++  java
  • Asp.net DataHelper类

    适合初学者的操作数据库类:

    SqlDbHelper Code
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Data.SqlClient;
    using System.Configuration;


    namespace Web_TEST.Common
    {
    public class SqlDbHelper
    {
    private string connectionString;
    /// <summary>
    /// 设置数据库连接字符串
    /// </summary>
    public string ConnectionString
    {
    set { connectionString = value; }
    }
    /// <summary>
    /// 构造函数
    /// </summary>
    public SqlDbHelper()
    : this(ConfigurationManager.ConnectionStrings["TESTConnectionString"].ConnectionString)
    {

    }
    /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="connectionString">数据库连接字符串</param>
    public SqlDbHelper(string connectionString)
    {
    this.connectionString = connectionString;
    }
    /// <summary>
    /// 执行一个查询,并返回结果集
    /// </summary>
    /// <param name="sql">要执行的查询SQL文本命令</param>
    /// <returns>返回查询结果集</returns>
    public DataTable ExecuteDataTable(string sql)
    {
    return ExecuteDataTable(sql, CommandType.Text, null);
    }
    /// <summary>
    /// 执行一个查询,并返回查询结果
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <returns>返回查询结果集</returns>
    public DataTable ExecuteDataTable(string sql, CommandType commandType)
    {
    return ExecuteDataTable(sql, commandType, null);
    }
    /// <summary>
    /// 执行一个查询,并返回查询结果
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
    /// <returns></returns>
    public DataTable ExecuteDataTable(string sql, CommandType commandType, SqlParameter[] parameters)
    {
    DataTable data = new DataTable();//实例化DataTable,用于装载查询结果集71
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
    command.CommandType = commandType;//设置command的CommandType为指定的CommandType
    //如果同时传入了参数,则添加这些参数
    if (parameters != null)
    {
    foreach (SqlParameter parameter in parameters)
    {
    command.Parameters.Add(parameter);
    }
    }
    //通过包含查询SQL的SqlCommand实例来实例化SqlDataAdapter
    SqlDataAdapter adapter = new SqlDataAdapter(command);
    adapter.Fill(data);//填充DataTable
    }
    }
    return data;
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的查询SQL文本命令</param>
    /// <returns></returns>
    public SqlDataReader ExecuteReader(string sql)
    {
    return ExecuteReader(sql, CommandType.Text, null);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <returns></returns>
    public SqlDataReader ExecuteReader(string sql, CommandType commandType)
    {
    return ExecuteReader(sql, commandType, null);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
    /// <returns></returns>
    public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
    {
    SqlConnection connection = new SqlConnection(connectionString);
    SqlCommand command = new SqlCommand(sql, connection);
    //如果同时传入了参数,则添加这些参数
    if (parameters != null)
    {
    foreach (SqlParameter parameter in parameters)
    {
    command.Parameters.Add(parameter);
    }
    }
    connection.Open();
    //CommandBehavior.CloseConnection参数指示关闭Reader对象时关闭与其关联的Connection对象
    return command.ExecuteReader(CommandBehavior.CloseConnection);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的查询SQL文本命令</param>
    /// <returns></returns>
    public Object ExecuteScalar(string sql)
    {
    return ExecuteScalar(sql, CommandType.Text, null);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <returns></returns>
    public Object ExecuteScalar(string sql, CommandType commandType)
    {
    return ExecuteScalar(sql, commandType, null);
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
    /// <returns></returns>
    public Object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters)
    {
    object result = null;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
    command.CommandType = commandType;//设置command的CommandType为指定的CommandType
    //如果同时传入了参数,则添加这些参数
    if (parameters != null)
    {
    foreach (SqlParameter parameter in parameters)
    {
    command.Parameters.Add(parameter);
    }
    }
    connection.Open();//打开数据库连接
    result = command.ExecuteScalar();
    }
    }
    return result;//返回查询结果的第一行第一列,忽略其它行和列
    }
    /// <summary>
    /// 对数据库执行增删改操作
    /// </summary>
    /// <param name="sql">要执行的查询SQL文本命令</param>
    /// <returns></returns>
    public int ExecuteNonQuery(string sql)
    {
    return ExecuteNonQuery(sql, CommandType.Text, null);
    }
    /// <summary>
    /// 对数据库执行增删改操作
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <returns></returns>
    public int ExecuteNonQuery(string sql, CommandType commandType)
    {
    return ExecuteNonQuery(sql, commandType, null);
    }
    /// <summary>
    /// 对数据库执行增删改操作
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <param name="commandType">要执行的查询语句的类型,如存储过程或者SQL文本命令</param>
    /// <param name="parameters">Transact-SQL 语句或存储过程的参数数组</param>
    /// <returns></returns>
    public int ExecuteNonQuery(string sql, CommandType commandType, SqlParameter[] parameters)
    {
    int count = 0;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    using (SqlCommand command = new SqlCommand(sql, connection))
    {
    command.CommandType = commandType;//设置command的CommandType为指定的CommandType
    //如果同时传入了参数,则添加这些参数
    if (parameters != null)
    {
    foreach (SqlParameter parameter in parameters)
    {
    command.Parameters.Add(parameter);
    }
    }
    connection.Open();//打开数据库连接
    count = command.ExecuteNonQuery();

    }
    }
    return count;//返回执行增删改操作之后,数据库中受影响的行数
    }
    /// <summary>
    /// 返回当前连接的数据库中所有由用户创建的数据库
    /// </summary>
    /// <returns></returns>
    public DataTable GetTables()
    {
    DataTable data = null;
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    connection.Open();//打开数据库连接
    data = connection.GetSchema("Tables");
    }
    return data;
    }
    /// <summary>
    /// 执行SQL事务
    /// </summary>
    /// <param name="sqls"></param>
    public void ExecuteBatchBySqls(List<string> sqls)
    {
    using (SqlConnection conn = new SqlConnection(this.connectionString))
    {
    SqlTransaction ot = null;
    using (SqlCommand cmd = new SqlCommand())
    {
    try
    {
    conn.Open();
    cmd.Connection = conn;
    //开始事务
    ot = conn.BeginTransaction();
    cmd.Transaction = ot;
    foreach (string sql in sqls)
    {
    if (sql.Trim().Length > 1)
    {
    cmd.CommandText = sql;
    cmd.ExecuteNonQuery();
    }
    }
    //提交事务
    ot.Commit();
    }
    catch (Exception ex)
    {
    //事务回滚
    ot.Rollback();
    ex.Message.ToString();
    //LogManager.WriteLog(ex.ToString());
    }
    }
    }
    }
    }
    }


     

  • 相关阅读:
    解决 Mac launchpad 启动台 Gitter 图标无法删除的问题
    React 与 React-Native 使用同一个 meteor 后台
    解决 React-Native mac 运行报错 error Failed to build iOS project. We ran "xcodebuild" command but it exited with error code 65. To debug build logs further, consider building your app with Xcode.app, by ope
    一行命令更新所有 npm 依赖包
    swift学习笔记
    IOS语言总结
    focusSNS学习笔记
    别小看锤子,老罗真的很认真
    windowsphone开发页面跳转到另一个dll中的页面
    【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
  • 原文地址:https://www.cnblogs.com/captainR/p/2318168.html
Copyright © 2011-2022 走看看