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

一、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, 10);//添加参数
DataTable dt = _database.ExecuteDataSet(command).Tables[0];
//将数据写入对象
for (int i = 0; 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 = 0;
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, 1);
        _database.AddInParameter(command, "Name", DbType.String, ‘name1‘);
        result += _database.ExecuteNonQuery(command, tran);//插入第一条数据

        _database.AddInParameter(command, "Id", DbType.Int32, 2);
        _database.AddInParameter(command, "Name", DbType.String, ‘name2‘);
        result += _database.ExecuteNonQuery(command, tran);//插入第二条数据

        if (result == 2)
            tran.Commit();//两条数据都插入成功则提交事务
        else
        {
            tran.Rollback();//否则回滚事务,取消所有插入的数据
        }
    }
    catch (System.Exception ex)
    {
        tran.Rollback();//出错,回滚事务
    }
    finally
    {
        if (conn != null)
           conn.Close();
    }
}
时间: 2024-08-13 22:49:17

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

PHP类初识,通用数据库操作类,前端easyui-datagrid,form

实现功能:     左端datagrid显示简略信息,右侧显示选中行详细信息,数据库增删改 (1)点击选中行,右侧显示详细信息,其中[新增].[修改].[删除]按钮可用,[保存]按钮禁用 (2)点击[新增]按钮,[修改],[删除]按钮禁用,[保存]按钮启用 (3)点击[修改]按钮,[新增],[删除]按钮禁用 难点:通用数据库操作类中insert方法跟update方法 最终效果图: 前端功能不是很完善,按钮之间逻辑还是有点问题,最后补充前端代码 其中Formain.php对前端传值判断,并调用ac

C#通用数据库操作类

ADO.NET操作 使用ADO.NET的方式操作数据库时,对于经常需要操作不同数据库的同学,需要对不同的数据库翻来覆去地写操作类. 对ADO.NET,操作数据库需要有几个核心的东西(以MySql为例): MySqlConnection 负责mysql的连接,在操作mysql前,需要先获得连接. MySqlCommand 负责具体命令的类,具体需要执行的sql的语句需要放到它的CommandText下. MySqlDataAdapter 对于查询数据,可以选择使用DataAdapter将数据一次性

MySql数据库数据类型和Sql Server 数据库数据类型之间的差异

1. MySQL支持enum和set类型,SQL Server不支持:2. MySQL不支持nchar.nvarchar.ntext类型:3. MySQL数据库的递增语句是AUTO_INCREMENT,而MS SQL是identity(1,1):4. MS SQL默认到处表创建语句的默认值表示是((0)),而在MySQL里面是不允许带两括号的:5. MySQL需要为表指定存储类型:6. MS SQL识别符是[],[type]表示他区别于关键字,但是MySQL却是 `,也就是按键1左边的那个符号:

log4php的配置--PHP类初识,通用数据库操作类代码问题

涉及的代码网址:http://www.cnblogs.com/leetao94/p/4690732.html 代码的点评 优点:代码通用性很好,能够根据传入的字段,自动拼接SQL语句缺点:不支持参数绑定,程序鲁棒性差          类变量使用不当,不应使用公用变量.构造函数传入参数过多,容易造成多点故障         代码格式缩进采用双tab制表位         程序未使用logger记录常见故障信息             数据库连接多次创建,未重用连接.getcolumn代码中采用硬

面向对象基础----封装数据库操作类

思考:现在掌握了很多面向对象相关的内容,但是什么时候封装类?怎么封装?如果使用类成员? 引入:其实类的封装没有多么复杂,但是需要一个熟练的过程来确定哪些东西可以放到类里,该用什么样的形式等.我们通过封装一个数据库的操作来综合练习下 封装数据库类 掌握 定义:封装数据库操作类,即根据数据库的操作需求,来确认数据库操作类该有什么样的功能,以及这些功能该如何实现. 1.一个类通常就是一个文件,所以要先确定文件的名字:通常类文件命名规范有两种. 文件名字与类名一样,如Sql.php 为了区分普通php文

刚整了一个数据库操作类,但是可以用吗?

今天闲来无事,把以前自己搞的一个数据库操作类重新整理了一下,把命名规范了一下,位置和功能重新规划了一下. 源代码下载:http://files.cnblogs.com/xiaoshuai1992/xsFrameWork.SqlServer.zip 请先看图片和介绍 DbOperate文件夹 DbAccess类:核心类,运用Ado.net 对数据库进行操作. DbInParameter :传入DbAccess的参数,如参数,sql语句,sp名称,sp是执行还是返回数据. DbOutParamete

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

ASP.NET(C#) 数据库操作类 SqlServerDataBase

1 using System.Web.Security; 2 using System.Web.UI; 3 using System.Web.UI.WebControls; 4 using System.Web.UI.WebControls.WebParts; 5 using System.Web.UI.HtmlControls; 6 using System.Data.SqlClient; 7 8 namespace Mysqlserver 9 { 10 /// <summary> 11 /

一个数据库操作类,适用于Oracle,ACCESS,SQLSERVER

最近做了一个数据诊断的项目,里面自己写了一个数据库的操作类,包含:连接数据库.读数据表.执行SQL操作,释放数据库等组成,希望对大家有用,由于水平有限,若有错误或者代码不足地方欢迎指正,谢谢. ADOOperate.H [cpp] view plaincopy ////////////////////////////////////////////////////////////////////// // 类功能:用于数据库的操作 主要实现 连接数据库 读数据表 检查数据表 执行SQL语句 //