zoukankan      html  css  js  c++  java
  • SqlHelper

    public class SqlHelper
    {
    //读取连接字符串
    private static string ConStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
    /// <summary>
    /// 自定义本地数据库
    /// </summary>
    /// <param name="dataBaseName">本地数据库名</param>
    /// <returns></returns>
    public static string GetConection(string dataBaseName)
    {
    ConStr = "server=localhost;database=" + dataBaseName + ";integrated security=sspi;";

    try
    {
    using (SqlConnection con = new SqlConnection(ConStr))
    {
    con.Open();
    return "连接成功";
    }
    }
    catch (SqlException e)
    {
    return "连接数据库出错"+e.Message;
    }

    }

    /// <summary>
    /// 静态方法方便调用
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
    {
    using (TransactionScope ts = new TransactionScope())//隐式事务
    {
    using (SqlConnection con = new SqlConnection(ConStr))
    {
    con.Open();
    using (SqlCommand cmd = con.CreateCommand())
    {
    try
    {
    cmd.CommandText = sql;
    cmd.Parameters.AddRange(parameters); //添加参数数组

    int i = cmd.ExecuteNonQuery();
    ts.Complete();
    //成功之后返回结果
    return i;
    }
    catch (Exception ex)
    {
    throw new Exception(ex.ToString());
    }
    finally
    {
    con.Close();//不管执行后是什么结果都关闭
    }
    }
    }
    }

    //第二种事务方法,当然没有第一种好
    //using (SqlConnection con = new SqlConnection(ConStr))
    //{
    // con.Open();
    // SqlTransaction sqlTransaction = con.BeginTransaction();//在创建命令之前创建事物
    // using (SqlCommand cmd = con.CreateCommand())
    // {

    // cmd.CommandText = sql;
    // cmd.Parameters.AddRange(parameters); //添加参数数组
    // cmd.Transaction = sqlTransaction;
    // try
    // {
    // int i = cmd.ExecuteNonQuery();
    // sqlTransaction.Commit();//提交事务
    // //成功之后返回结果
    // return i;
    // }
    // catch (Exception ex)
    // {
    // sqlTransaction.Rollback();//回滚事务
    // throw new Exception(ex.ToString());
    // }
    // finally
    // {
    // con.Close();//不管执行后是什么结果都关闭
    // }
    // }
    //}
    //比较不带事务的,当停电,关机等等原因
    //不带事务,会把之前添加成功的会成功,加上事务,只要有失败就全部回滚
    //using (SqlConnection con = new SqlConnection(ConStr))
    //{
    // con.Open();
    // using (SqlCommand cmd = con.CreateCommand())
    // {

    // cmd.CommandText = sql;
    // cmd.Parameters.AddRange(parameters); //添加参数数组
    // try
    // {
    // int i = cmd.ExecuteNonQuery();
    // //成功之后返回结果
    // return i;
    // }
    // catch (Exception ex)
    // {
    // throw new Exception(ex.ToString());
    // }
    // finally
    // {
    // con.Close();//不管执行后是什么结果都关闭
    // }
    // }
    //}
    }

    public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
    {
    using (SqlConnection con = new SqlConnection(ConStr))
    {
    con.Open();
    using (SqlCommand cmd = con.CreateCommand())
    {
    cmd.CommandText = sql;
    cmd.Parameters.AddRange(parameters);
    return cmd.ExecuteScalar();
    }
    }
    }
    public static DataTable ExecuteDataTable(string sql, params SqlParameter[] parameters)
    {
    using (SqlConnection con = new SqlConnection(ConStr))
    {
    con.Open();
    using (SqlCommand cmd = con.CreateCommand())
    {
    cmd.CommandText = sql;
    cmd.Parameters.AddRange(parameters);

    //数据适配器
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    adapter.Fill(ds);

    return ds.Tables[0];
    }
    }
    }

    //DataBase to Program value
    public static object ToDBValue(object str)//数据来自程序 给数据库
    {
    if (str==null)
    {
    return DBNull.Value;
    }
    else
    {
    return str;
    }
    }
    public static object FromDBValue(object str)//数据来自数据库 给程序
    {
    if (str==DBNull.Value)
    {
    return null;
    }
    else
    {
    return str;
    }
    }
    /// <summary>
    /// 调用数据库连接池
    /// </summary>
    /// <param name="table"></param>
    public static void sqlBulkCopy(DataTable table)
    {
    //数据库连接池
    using (SqlBulkCopy sqlbc = new SqlBulkCopy(ConStr))
    {
    sqlbc.DestinationTableName = "T_QSUserAnswer";
    sqlbc.ColumnMappings.Add("UserGuid", "T_UserGuid");
    sqlbc.ColumnMappings.Add("InfoAnswer", "T_InfoAnswer");
    sqlbc.ColumnMappings.Add("InfoScore", "T_InfoScore");
    sqlbc.ColumnMappings.Add("ProTitGuid", "T_ProTitGuid");
    sqlbc.WriteToServer(table);
    }
    }

  • 相关阅读:
    Vue学习-Day1
    Shell脚本学习
    Linux基础
    C# int.Parse()、int.TryParse()与Convert.ToInt32()的区别
    windows下跑python flask,环境配置
    linq性能剖析
    servicestack操作redis
    程序员福利各大平台免费接口非常适用
    ASP.NET下跨应用共享Session和使用Redis进行Session托管简介
    Web Farm和Web Garden的区别
  • 原文地址:https://www.cnblogs.com/jinhaoObject/p/4606249.html
Copyright © 2011-2022 走看看