1、C#之数据库连接

using System;
using System.Collections.Generic;
using System.Text;


using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace DAL
{
    /// <summary>
    /// 公有类(用于所有的数据操作类)
    /// </summary>
    public class DBHelper
    {


        string connectionstring = ConfigurationManager.ConnectionStrings["strconn"].ToString();
	//这个strconn在app.config配置文件中.


        /// <summary>
        /// 获取连接对象
        /// </summary>
        /// <returns></returns>
        public SqlConnection GetConn()
        {
            SqlConnection conn = new SqlConnection(connectionstring);
            return conn;
        }

        /// <summary>
        /// 配置SqlCommand对象
        /// </summary>
        /// <param name="conn"></param>
        /// <param name="sqlstr"></param>
        /// <param name="tran"></param>
        /// <param name="sps"></param>
        /// <returns></returns>
        public SqlCommand PrepareCommand(SqlConnection conn, string sqlstr, SqlTransaction tran, SqlParameter[] sps)
        {
            SqlCommand comm = new SqlCommand(sqlstr, conn);
            comm.CommandType = CommandType.StoredProcedure;//存储过程
            if (tran != null)
            {
                comm.Transaction = tran;
            }
            if (sps != null)
            {
                comm.Parameters.AddRange(sps);
            }
            return comm;

        }


        /// <summary>
        /// 执行查询存储过程,返回一个Datatable类型(不带事务)
        /// </summary>
        /// <param name="strsql"></param>
        /// <param name="sps"></param>
        /// <returns></returns>
        public DataTable ExecuteStoredSelectSql(string strsql, SqlParameter[] sps)
        {
            using (SqlConnection conn = GetConn())
            {

                using (SqlCommand comm = PrepareCommand(conn, strsql, null, sps))
                {
                    try
                    {
                        SqlDataAdapter da = new SqlDataAdapter(comm);
                        DataTable table = new DataTable();
                        da.Fill(table);
                        return table;
                    }
                    catch (SqlException ex)
                    {
                        throw new Exception(ex.Message);
                    }
                }
            }

        }


        /// <summary>
        /// 执行存储过程,适用于增加、删除、修改等的存储过程操作(单条记录操作)(无事务)
        /// </summary>
        /// <param name="strsql"></param>
        /// <param name="sps"></param>
        /// <returns></returns>
        public bool ExecuteStoredSql(string strsql, SqlParameter[] sps)
        {


            using (SqlConnection conn = GetConn())
            {

                using (SqlCommand comm = PrepareCommand(conn, strsql, null, sps))
                {
                    try
                    {

                        if (conn.State != ConnectionState.Open)
                        {
                            conn.Open();
                        }

                        int i = comm.ExecuteNonQuery();
                        if (i > 0)
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }


                    }
                    catch (SqlException ex)
                    {
                        throw new Exception(ex.Message);

                    }
                }
            }
        }



        /// <summary>
        /// 执行多结果集,并带事务(多个sqlcommand对象 ,)
        /// </summary>
        /// <param name="strsql"></param>
        /// <param name="tran"></param>
        /// <param name="sps"></param>
        /// <returns></returns>
        public bool ExecuteInsertRecordsStoredSql(string[] strsqls, SqlParameter[][] sps, DataTable table)
        {
            using (SqlConnection conn = GetConn())
            {
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();
                try
                {
                    SqlCommand delcomm = PrepareCommand(conn, strsqls[0], null, sps[0]);



                    SqlCommand inscomm = PrepareCommand(conn, strsqls[1], null, sps[1]);

                    delcomm.Transaction = tran;
                    delcomm.ExecuteNonQuery();//先删除

                    inscomm.Transaction = tran;
                    SqlDataAdapter da = new SqlDataAdapter();
                    da.InsertCommand = inscomm;
                    da.InsertCommand.UpdatedRowSource = UpdateRowSource.None;
                    da.UpdateBatchSize = 0;
                    da.Update(table);
                    tran.Commit();
                    return true;

                }
                catch (SqlException ex)
                {
                    tran.Rollback();
                    throw new Exception(ex.Message);


                }


            }


        }

    }


}




    <connectionStrings>
        <add name="strconn" connectionString="Server=XXM-PC\SQLXU;Integrated Security=true;DataBase=guanlidb;MultipleActiveResultSets=true;"/>
    </connectionStrings>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值