一、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. JavaScript算法题(一) && 数组reduce使用

    可参考Array.reduce用法 1. 请编写getMissingElement函数,返回给定数组中缺少的元素(数组里的元素为0~9,只会缺失一个). Example: getMissingElem ...

  2. 简易SQL语句

    /*创建 模式 为用户 User1*/ CREATE SCHEMA test authorization User1; CREATE SCHEMA test USER User1; CREATE TA ...

  3. Android 单击跳转到打电话发短信界面,长按打电话发短信

    <uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission a ...

  4. searchkick HasMany Associations | index related model fields

    Project < ActiveRecord::Base searchkick has_many :categories_has_projects has_many :categories, t ...

  5. amazon lightsail

    https://51.ruyo.net/6038.html https://aws.amazon.com/cn/lightsail/

  6. bfs 邻接表

    #include<stdio.h> #include<stdlib.h> #include<string.h> struct node { int date; st ...

  7. html5--6-11 CSS选择器7--伪类选择器

    html5--6-11 CSS选择器7--伪类选择器 #E:target 选择当前活动的锚点元素. 学习要点 掌握常用的CSS选择器 了解不太常用的CSS选择器 什么是选择器 当我们定义一条样式时候, ...

  8. Android零碎知识点,之后会一直更新的哦!

    view的getCompoundDrawables()方法,调用这个方法返回的是控件的左上右下四个位置的Drawable,并且返回的类型是数据 setBounds(x,y,width,height); ...

  9. bzoj 2301 [HAOI2011]Problem b(莫比乌斯反演+分块优化)

    题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b≤50000, ...

  10. lucene Index Store TermVector 说明

    最新的lucene 3.0的field是这样的: Field options for indexingIndex.ANALYZED – use the analyzer to break the Fi ...