完美版db

using System;

using System.Collections.Generic;

using System.Data;

using System.Data.SqlClient;

using System.Text;

namespace DAL

{

    public class DBhelper

    {

        private static string DBConnectString = "Data Source=.;Initial Catalog=asp.net6;Integrated Security=True";

        private static SqlConnection conn;

        private static SqlDataAdapter da;

        private static SqlDataReader dr;

        private static SqlCommand cmd;

        private static DBhelper dBHelper;

        public DBhelper()

        {

            conn = new SqlConnection(DBConnectString);

        }

        public static DBhelper Instance()

        {

            if (dBHelper == null)

            {

                dBHelper = new DBhelper();

            }

            return dBHelper;

        }

        void DBOpen()

        {

            if (conn.State == ConnectionState.Closed)

            {

                conn.Open();

            }

        }

        void DBClose()

        {

            if (conn.State == ConnectionState.Open)

            {

                conn.Close();

            }

        }

        /// <summary>

        /// 执行查询(SELECT)

        /// </summary>

        /// <param name="sql">查询语句</param>

        /// <returns>包含数据库数据的DataTable对象</returns>

        public DataTable GetDataTableBySql(string sql)

        {

            DBOpen();

            DataTable dt = new DataTable();

            da = new SqlDataAdapter(sql, conn);

            try

            {

                da.Fill(dt);

                return dt;

            }

            catch

            {

                return null;

            }

            finally

            {

                DBClose();

            }

        }

        /// <summary>

        /// 执行查询(SELECT)

        /// </summary>

        /// <param name="sql">查询语句</param>

        /// <returns>用于检索数据库数据的读取器SqlDataReader对象</returns>

        public SqlDataReader GetDataReaderBySql(string sql)

        {

            DBOpen();

            cmd = new SqlCommand(sql, conn);

            try

            {

                dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                return dr;

            }

            catch

            {

                return null;

            }

        }

        /// <summary>

        /// 执行增、删、改(INSERT、DELETE、UPDATE)

        /// </summary>

        /// <param name="sql">查询语句</param>

        /// <returns>操作成功与否</returns>

        public bool ExcuteSql(string sql)

        {

            DBOpen();

            cmd = new SqlCommand(sql, conn);

            try

            {

                cmd.ExecuteNonQuery();

                return true;

            }

            catch

            {

                return false;

            }

            finally

            {

                DBClose();

            }

        }

        /// <summary>

        /// 执行存储过程

        /// </summary>

        /// <param name="proName">存储过程名</param>

        /// <param name="paras">存储过程参数</param>

        /// <returns>操作成功与否</returns>

        public bool ExcuteProcedure(string proName, SqlParameter[] paras)

        {

            DBOpen();

            cmd = new SqlCommand(proName, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            for (int i = 0; i < paras.Length; i++)

            {

                cmd.Parameters.Add(paras[i]);

            }

            try

            {

                if (cmd.ExecuteNonQuery() > 0)

                {

                    return true;

                }

                else

                {

                    return false;

                }

            }

            catch

            {

                return false;

            }

            finally

            {

                DBClose();

            }

        }

    }

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • using System; using System.Collections.Generic; using Sys...
    程序媛_阅读 290评论 0 0
  • 第一步导入两个命名空间: using.system.data using.system.data.sqlclien...
    程序媛_阅读 321评论 0 0
  • #DBHelp ``` public class DBHelper { //数据库连接字符串 private...
    暗组夏天阅读 2,558评论 0 1
  • 导入两个命名空间 using system.data; using system.data.sqlclient; ...
    程序媛_阅读 755评论 0 0
  • 该类为本人项目使用中的oracle连接工具类 1.先引入OraOps10.dll 2.将该类加入项目中 dll及源...
    羚羊藏历阅读 1,331评论 0 0