一、Web.config配置

<connectionStrings>
<add name="constr_name" connectionString="server=192.168.1.139;uid=sa;pwd=123456;Trusted_Connection=no;Database=dabasename" providerName="system.data.sqlclient"/>
</connectionStrings>
注:constr_name(自定义名),server(sqlserver服务器地址),uid(登录名),pwd(密码),Trusted_Connection(是否使用windows账户登录),Database(数据库名),providerName(数据库类型,sqlserver的为system.data.sqlclient)

二、引用

using Microsoft.Practices.EnterpriseLibrary.Data;

三、创建数据库实例

private Database _database;
this._database = DatabaseFactory.CreateDatabase();//在DAL类的构造函数中创建

例1、获取所有id大于10的用户

User user = null;
List<User> list = new List<User>();
//读取数据
string sql = "SELECT * FROM [User] WHERE id > @id;";
DbCommand command = _database.GetSqlStringCommand(sql);
_database.AddInParameter(command, "id", DbType.Int32, );//添加参数
DataTable dt = _database.ExecuteDataSet(command).Tables[];

//将数据写入对象
for (int i = ; i < dt.Rows.Count; i++)
{
user = new User();
if (dt.Rows[i]["id"] != DBNull.Value)
user.id = Convert.ToInt32(dt.Rows[i]["id"]);
if (dt.Rows[i]["name"] != DBNull.Value)
user.name = dt.Rows[i]["name"].ToString(); list.Add(user);
}

例2、 使用事务,插入用户数据

int result = ;
string sql = "INSERT INTO [User] VALUES(@Id,@Name);"; using (DbConnection conn = _database.CreateConnection())
{
conn.Open();
DbTransaction tran = conn.BeginTransaction();//开始事务
try
{
command = _database.GetSqlStringCommand(sql);
_database.AddInParameter(command, "Id", DbType.Int32, );
_database.AddInParameter(command, "Name", DbType.String, 'name1');
result += _database.ExecuteNonQuery(command, tran);//插入第一条数据 _database.AddInParameter(command, "Id", DbType.Int32, );
_database.AddInParameter(command, "Name", DbType.String, 'name2');
result += _database.ExecuteNonQuery(command, tran);//插入第二条数据 if (result == )
tran.Commit();//两条数据都插入成功则提交事务
else
{
tran.Rollback();//否则回滚事务,取消所有插入的数据
}
}
catch (System.Exception ex)
{
tran.Rollback();//出错,回滚事务
}
finally
{
if (conn != null)
conn.Close();
}
}

ADO.NET 使用通用数据库操作类Database (SQL Server)的更多相关文章

  1. 【ADO.NET】 使用通用数据库操作类Database (SQL Server)

    一.Web.config配置 <connectionStrings> <add name="constr_name" connectionString=" ...

  2. 通用数据库操作类,前端easyui-datagrid,form

    实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[ ...

  3. C#通用数据库操作类

  4. 一个通用数据库访问类(C#,SqlClient)

    本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connecti ...

  5. C#全能数据库操作类及调用示例

    C#全能数据库操作类及调用示例 using System; using System.Data; using System.Data.Common; using System.Configuratio ...

  6. 数据库操作类《SqlHelper》

    一.背景 在看了一本书叫<Visual Studio 2010(C#)Windows数据库项目开发>后,觉得很多编程技术需要积累,因为一个简单的项目里包含的技术太多了,容易忘记.每次需要用 ...

  7. 通用数据库帮助类DBHelper(含log日志信息实时记录)

    项目需要,需要一个通用的数据库操作类,增删改查.事务.存储过程.日志记录都要有,于是在已有的帮助类上做了一些改进,并将log4j的.NET版--log4net嵌入其中记录sql的执行环境和状态. 用起 ...

  8. MySQL数据库操作类(PHP实现,支持连贯操作)

    <?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...

  9. ado.net的简单数据库操作(一)

    摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在w ...

随机推荐

  1. linux关闭双显卡的方法

    我正在使用的一体机是双显卡,在linux下没有很么太好的办法来切换双显卡, 导致使用一会儿后就发烫,关键是这时风扇呜呜的响很吵人 最后找到了下面的解决方法来关掉独立显卡 见 https://githu ...

  2. js 小数相加

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat=&qu ...

  3. iOS 图片的按照比例拉伸

    // 这是一个UIImage 的分类 (  UIImage+Extension.h   ) UIImage+Extension.h #import <UIKit/UIKit.h> @int ...

  4. spring 笔记1: mvn 中Controller方法的参数不能是嵌套类(内部类)。

    最近做spring开发,个人认为,Controller和客户端js通讯时传递的参数类 只使用某几个方法,为了减少对其他功能的影响,想把参数类定义为Controller类的 嵌套类(内部类).但是实践发 ...

  5. LINUX的磁盘管理du命令详解

    LINUX的磁盘管理du命令详解 du(disk usage)命令可以计算文件或目录所占的磁盘空间.没有指定任何选项时, 它会测量当前工作目录与其所有子目录,分别显示各个目录所占的快数,最后才显示工作 ...

  6. EBS learning history (to know about the environment)

    prcsgidb1: /u01/Stage/database C:\Users\alley_li>ping prcsgidb1 Pinging prcsgidb1.ad.infosys.com ...

  7. Python导入Scipy子模块时出错

    导入Scipy子模块时报错,出现的问题都是提示 61 from numpy._distributor_init import NUMPY_MKL  # requires numpy+mklNo mod ...

  8. 反射 __import__

    __import__ 根据字符串导入模块 def run(): inp = input('请输入URL:') m,p = inp.split('/') obj = __import__(m) if h ...

  9. 基于opencv和mfc的摄像头采集代码(GOMFCTemplate2)

            编写带界面的图像处理程序,选择opencv+mfc是一种很好的选择:在读取摄像头数据方面,网上的方法很多,其中shiqiyu的camerads的方法是较好的.       基于现有资料 ...

  10. mysql 导出批量导出表数据 (程序)

    private static String driverName = "com.mysql.jdbc.Driver"; public static void main(String ...