zoukankan      html  css  js  c++  java
  • asp.net 项目连接SQL数据库详解代码(类)

         asp.net项目往往都要连接数据库,我一般习惯使用三层架构(Mode,DAL,BLL,Web)来创建项目,

         今天我就把项目怎么连接SQL数据库的类写下来,仅供大家参考。

        (注意:此教程是在三层架构的前提下)

         1.首先是连接字符串:为了便于修改,我们把连接的字符串写在Web层下的Web.config文件中。

            在Web.config文件的<connectionStrings></connectionStrings>节点中添加如下代码:

            <add name="connStr" connectionString="server=gaopin\SQLEXPRESS;

             database=Table; uid=gaopin; pwd=123456"/>

            这句话的意思是建立一个connStr连接,服务器是gaopin\SQLEXPRESS,数据库名是Table,

            用户名是gaopin密码是123。

         2.连接建立完成了以后接着在DAL层中建立一个类(.cs)文件,类名是SQLHelper

         3.要连接数据库必须引用Configuration,在SQLHelper类中也添加引用:

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

         4.完成SQLHelper的编写,整个类如下:

           namespace DAL
              {
               public class SQLHelper
                {
                  private SqlConnection conn = null;
                  private SqlCommand cmd = null;
                  private SqlDataReader sdr = null;
                  public SQLHelper()
                   {
                     string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
                     conn = new SqlConnection(connStr);
                   }

                   private SqlConnection GetConn()
                    {
                     if (conn.State == ConnectionState.Closed)
                      {
                        conn.Open();
                      }
                      return conn;
                    }

              /// <summary>
              ///  执行不带参数的增删改SQL语句或存储过程
              /// </summary>
              /// <param name="cmdText">增删改SQL语句或存储过程</param>
              /// <param name="ct">命令类型</param>
              /// <returns></returns>
              public int ExecuteNonQuery(string cmdText, CommandType ct)
              {
                  int res;
                  try
                  {
                      cmd = new SqlCommand(cmdText, GetConn());
                      cmd.CommandType = ct;
                      res = cmd.ExecuteNonQuery();
                  }
                  catch (Exception ex)
                  {
                      throw ex;
                  }
                  finally
                  {
                      if (conn.State == ConnectionState.Open)
                      {
                          conn.Close();
                      }
                  }
                  return res;
              }

              /// <summary>
              ///  执行带参数的增删改SQL语句或存储过程
              /// </summary>
              /// <param name="cmdText">增删改SQL语句或存储过程</param>
              /// <param name="ct">命令类型</param>
              /// <returns></returns>
              public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
              {
                  int res;
                  using (cmd = new SqlCommand(cmdText, GetConn()))
                  {
                      cmd.CommandType = ct;
                      cmd.Parameters.AddRange(paras);
                      res = cmd.ExecuteNonQuery();
                  }
                  return res;
              }

              /// <summary>
              ///  执行查询SQL语句或存储过程
              /// </summary>
              /// <param name="cmdText">查询SQL语句或存储过程</param>
              /// <param name="ct">命令类型</param>
              /// <returns></returns>
              public DataTable ExecuteQuery(string cmdText, CommandType ct)
              {
                  DataTable dt = new DataTable();
                  cmd = new SqlCommand(cmdText, GetConn());
                  cmd.CommandType = ct;
                  using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                  {
                      dt.Load(sdr);
                  }
                  return dt;
              }

              /// <summary>
              ///  执行带参数的查询SQL语句或存储过程
              /// </summary>
              /// <param name="cmdText">查询SQL语句或存储过程</param>
              /// <param name="paras">参数集合</param>
              /// <param name="ct">命令类型</param>
              /// <returns></returns>
              public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
              {
                  DataTable dt = new DataTable();
                  cmd = new SqlCommand(cmdText, GetConn());
                  cmd.CommandType = ct;
                  cmd.Parameters.AddRange(paras);
                  using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                  {
                      dt.Load(sdr);
                  }
                  return dt;
              }
          }
      }

           


     

         

  • 相关阅读:
    Windows Server 2008安装Memcached笔记
    解决powerDesinger12逆向工程报错:Unable to list the tables
    冒泡排序算法
    ASP.NET面试题(推荐_有答案)
    ASP.NET服务器控件分类简介
    将excel文件中的数据导入导出至SQL数据库中(Microsoft.Jet.OLEDB.4.0和Microsoft.ACE.OLEDB.12.0|office2003和office2007)
    关于sql access excel以及在web.config中数据库连接字符串的写法
    ODBC / OLEDB___DAO / RDO / ADO
    什么是CSV格式文档
    AppSettings和ConnectionStrings的区别
  • 原文地址:https://www.cnblogs.com/gaopin/p/2666740.html
Copyright © 2011-2022 走看看