自己编写的数据访问类(C#)--第四篇
作者/天才 时间/2006-1-10 17:13:00 类别/开发技术 查看/
 发表评论 以论坛方式查看
标签:.Net联盟
作者:黄润成


3、 直接使用SqlDbService和OleDbService类的对象
由于SqlDbService和OleDbService类都实现了IDbService接口,因此,SqlDbService和OleDbService类所提供的其实就是IDbService接口规定的服务。SqlDbService和OleDbService类都可以通过 new 关键字来创建实例对象。
下面以SqlDbService类为例说明SqlDbService和OleDbService类的使用方法:

(1) 查询数据

string SqlString = "SELECT GradeID FROM Users WHERE UserID=@UserID";
//创建一个SqlDbService类实例对象。
IDbService ADbService = new SqlDbService();
//创建一个包含“@UserID”参数的参数管理对象,该对象可包含多个参数。
DbParams Params = ADbService.CreateDbParams("@UserID", DbType.Int32, int.Parse(UserID));
//取得包含查询结果的IDataReaderWrapper对象,可在该对象的OnClose事件委托中注册一个回调函数,
//当调用该对象的Close()方法时将执行该回调函数。
IDataReaderWrapper chnReader = ADbService.ExecuteReader(SqlString, Params);
try
{
//绑定查询结果到数据绑定控件上。
rptChannels.DataSource = chnReader;
rptChannels.DataBind();
}
finally
{
//关闭 IDataReaderWrapper 接口实例对象的引用,如果OnClose事件委托中注册了回调函数,
//则执行回调函数中的代码。
chnReader.Close();
}


(2) 提交数据(插入、修改、删除等)

//删除数据和更新数据
String SqlString = "DELETE Favorites WHERE FavoriteID=@FavoriteID;" +
"UPDATE ObjectTags SET IsDelete=1 WHERE ObjectType='Favorite' AND ObjectID=@FavoriteID;";
//创建一个SqlDbService类实例对象。
IDbService ADbService = new SqlDbService();
//创建参数管理对象。
DbParams Params = ADbService.CreateDbParams("@FavoriteID", DbType.Int32, int.Parse(FavoriteID));
//执行无返回结果的SQL语句。
ADbService.ExecuteNone(SqlString, Params);



(3) 启用事务
还用上面的例子,如果要在执行多个写数据库操作的时候需要启用数据库事务来保持数据完整性,则可以使用下面的方法来启用事务:

//删除数据和更新数据
String SqlString = "DELETE Favorites WHERE FavoriteID=@FavoriteID;" +
"UPDATE ObjectTags SET IsDelete=1 WHERE ObjectType='Favorite' AND ObjectID=@FavoriteID;";
//创建一个SqlDbService类实例对象。
IDbService ADbService = new SqlDbService();
//创建参数管理对象。
DbParams Params = ADbService.CreateDbParams("@FavoriteID", DbType.Int32, int.Parse(FavoriteID));
//开始事务
ADbService.BeginTransaction();
//执行SQL语句。
ADbService.ExecuteNone(SqlString, Params);
//提交事务。
ADbService.CommitTransaction();


(4) 其他方法的使用
由于DbService类的静态方法基本上都对应IDbService接口定义的方法,因此,要了解SqlDbService和OleDbService类其他的方法的使用方法,可参考DbService类的静态方法说明,或直接查看源代码中IDbService接口定义的注释说明。
查看该用户更多文章>>