惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hugging Face - Blog
Hugging Face - Blog
Jina AI
Jina AI
宝玉的分享
宝玉的分享
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
J
Java Code Geeks
博客园 - 【当耐特】
小众软件
小众软件
博客园 - Franky
S
SegmentFault 最新的问题
WordPress大学
WordPress大学
雷峰网
雷峰网
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
Last Week in AI
Last Week in AI
博客园_首页
月光博客
月光博客
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
Stack Overflow Blog
Stack Overflow Blog
腾讯CDC
云风的 BLOG
云风的 BLOG
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Docker
The Last Watchdog
The Last Watchdog
有赞技术团队
有赞技术团队
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
DataBreaches.Net
S
Security @ Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale
GbyAI
GbyAI
TaoSecurity Blog
TaoSecurity Blog
S
Security Affairs
Y
Y Combinator Blog
O
OpenAI News
罗磊的独立博客
MongoDB | Blog
MongoDB | Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Forbes - Security
Forbes - Security
P
Palo Alto Networks Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
K
Kaspersky official blog
Cloudbric
Cloudbric

博客园 - 阿春

培养领袖气质 带游标的存储过程 SQL语句集锦 (转) 正则表达式基础知识(转) http://www.cnblogs.com/pwqzc/archive/2006/06/12/423651.html(转,好东东) 脏字典 转 测试网站各项性能的31 个免费在线工具 最佳的75个网络安全工具 (转载) 截断表内容 和 删除表 sql 语句 :取总数 下载指定URL的HTML代码 工厂模式的数据库连接 执行查询语句 给一个文本 和 编码类型 转换成 规定类型的 URL 编码 C#采集器 ss 触发器 防止注入的sql调用 程序调用sql
利用.NET2.0自带的数据库访问工厂写的数据库访问基类
阿春 · 2008-03-27 · via 博客园 - 阿春

using System;

using System.Collections.Generic;

using System.Text;

using System.Data.Common;

using System.Configuration;

using System.Data;

namespace DAL

{

    public class Database

    {

        #region 字段

        private const string defaultConnectionConfigKey ="default";

        /// <summary>

        /// 数据连接字符串

        /// </summary>

        private string connectionString;

        /// <summary>

        /// 数据库 驱动 提供者

        /// </summary>

        private string providerName;

        /// <summary>

        /// 数据库 驱动 提供者 工厂

        /// </summary>

        private DbProviderFactory factory;

        #endregion

        #region 构造函数

        /// <summary>

        /// 默认构造函数 注意 config文件的,数据库连接节点名称默认为"default"

        /// 才调用此初始构造函数。否则调用重载构造函数。

        /// </summary>

        public Database():this(defaultConnectionConfigKey)

        {

        }

        /// <summary>

        /// config中的数据库节点名为参数构造数据库访问对象

        /// </summary>

        /// <param name="conConfigKey">config中的数据库节点名</param>

        public Database(string conConfigKey)

        {

            ConnectionStringSettings settings = ConfigurationManager.ConnectionStrings[conConfigKey];//连接App.config的数据库的 连接

            connectionString = settings.ConnectionString;//获得链接字符串

            providerName = settings.ProviderName;//得到链接名

            factory = DbProviderFactories.GetFactory(providerName);//连接到sql数据库

        }

        #endregion

        #region 方法

        #region 执行查询语句,返回一组数据——返回类型是DataTable

        /// <summary>

        /// 执行查询语句,返回一组数据。返回类型是DataTable

        /// 一般为Selectsql语句

        /// </summary>

        /// <param name="sql">执行的Sql语句</param>

        /// <returns>返回数据的DataTable</returns>

        public DataTable Select(string sql)

        {

            using (DbConnection conn = factory.CreateConnection())//连接数据库

            {

                try

                {

                    conn.ConnectionString = connectionString;//得到链接的字符串

                    conn.Open();//打开连接

                    DbDataAdapter adapter = factory.CreateDataAdapter();//

                    adapter.SelectCommand = conn.CreateCommand();//创建连接命令

                    adapter.SelectCommand.CommandText = sql;//执行查询的sql命令

                    DataTable table = new DataTable();//定义表

                    adapter.Fill(table);//填充表

                    return table;//返回表

                }

                catch

                {

                    conn.Close();//关闭连接

                    return null;//返回空值

                }

            }

        }

        #endregion

        #region 执行 语句 返回影响的行数

        /// <summary>

        /// 执行sql语句,一般为更新(update),插入(insert)、删除(delete)的操作。

        /// 返回的是数据库执行sql语句,影响的数据表行数。

        /// </summary>

        /// <param name="sql">执行的Sql语句</param>

        /// <returns>返回的是数据库执行sql语句,影响的数据表行数。</returns>

        public int Exec(string sql)

        {

            using (DbConnection conn = factory.CreateConnection())

            {

                try

                {

                    DbCommand cmd = conn.CreateCommand();

                    cmd.CommandText = sql;

                    conn.ConnectionString = connectionString;

                    conn.Open();

                    int i = cmd.ExecuteNonQuery();

                    return i;

                }

                catch

                {

                    conn.Close();

                    return 0;

                }

            }

        }

        #endregion

        #region 执行语句返回 首行首列,返回类型是Object类型。

        /// <summary>

        /// 执行sql语句,返回首行首列。返回类型是Object类型。

        /// </summary>

        /// <param name="sql">执行的Sql语句</param>

        /// <returns>返回Object类型的首行首列数据。</returns>

        public Object ExecScalar(string sql)

        {

            using (DbConnection conn = factory.CreateConnection())

            {

                try

                {

                    DbCommand cmd = conn.CreateCommand();

                    cmd.CommandText = sql;

                    conn.ConnectionString = connectionString;

                    conn.Open();

                    Object i = cmd.ExecuteScalar();

                    return i;

                }

                catch

                {

                    conn.Close();

                    return null;

                }

            }

        }

        #endregion

        #endregion

    }

}
配置文件中的配置

 <connectionStrings>
  <!-- Access 数据库 连接字符串
            密码:
            Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Financing_db.mdb;Persist Security Info=False;Jet OLEDB:Database Password=xxxxxx

            通常:
            Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Financing_db.mdb

            其中:
            |DataDirectory|系统被解析到系统所在文件夹下。
     -->
  <add name="default" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\App_Data\EFang.mdb;Persist Security Info=True" providerName="System.Data.OleDb"/>
  <!-- Sql Server 数据库 连接字符串
  <add name="default" connectionString="server=192.168.1.88;uid=sa;pwd=sa;database=efang" providerName="System.Data.SqlClient"/> -->

Integrated Security=True  windows用户登录数据库
  <!-- Oracle 数据库 连接字符串 
  <add name="default" connectionString="Data Source=svrora;User ID=efang;Password=efang;" providerName="System.Data.OracleClient"/>-->
 </connectionStrings>