MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理

简介:
同上篇,主要是参考dOOdad文档,并加入了一些自己的理解。

1.  数据绑定:
    (1) 绑定到DataGrid(WebApp)

if (emps.LoadAll())
{
     dvEmps 
= emps.DefaultView;
     dgEmps.DataSource 
= dvEmps;
     dgEmps.DataBind();
}

   (2) 绑定到ComboBox(WinApp)

// get data
emps.Query.AddResultColumn(Employees.ColumnNames.EmployeeID);
emps.Query.AddResultColumn(Employees.ColumnNames.LastName);
emps.Query.AddOrderBy(Employees.ColumnNames.LastName,
WhereParameter.Dir.ASC);
emps.Query.Load();
// bind to combobox
cmbEmployees.DisplayMember  =  Employees.ColumnNames.LastName;
cmbEmployees.ValueMember 
=  Employees.ColumnNames.EmployeeID;
cmbEmployees.Datasource 
=  emps.DefaultView;


   (3) 绑定到DropDownList(WebApp)

  // get data
 emps.Query.AddResultColumn(Employees.ColumnNames.EmployeeID);
 emps.Query.AddResultColumn(Employees.ColumnNames.LastName);
 emps.Query.AddOrderBy(Employees.ColumnNames.LastName,
 WhereParameter.Dir.ASC);
 emps.Query.Load();
 
// bind to drop-down list
 ddlEmployees.Datasource  =  emps.DefaultView;
 ddlEmployees.DataTextField 
=  Employees.ColumnNames.LastName;
 ddlEmployees.DataValueField 
=  Employees.ColumnNames.EmployeeID;
 ddlEmployees.Databind();

 

 

2.  特殊函数:执行自定义存储过程和SQL语句

Examples:
(1)LoadFromSql: (从数据库中检索并返回检索结果集,查询结果保存到DataTable中)

ListDictionary Parms  =   new  ListDictionary();
Parms.Add(
" @parameterName1 " , value1);
Parms.Add(
" @parameterName2 " , value2);
parms.Add……
if ( this .LoadFromSql( " proc_GetSpecialEmployee " , Parms))
{
  ...
}


(2)LoadFromSqlNoExec: (执行无结果集的存储过程,返回受影响的行数)
        int NbrOfChecks = this.LoadFromSqlNoExec("proc_CalculatePayroll");
        例如:删除一条记录,dOOdad提供的文档中的方法是:先LoadByPrimaryKey,再MarkAsDeleted,最后再Save进数据库;这个过程要对数据库进行两次操作。实际上,我们可以只操作一次数据库(直接用dOOdads模板生成的存储过程),而不用先Load。
 ListDictionary Parms = new ListDictionary();
 Parms.Add("@ID", empID);
 int effectLine = this.LoadFromSqlNoExec("proc_EmployeeDelete",Parms);

(3)LoadFromSqlReader:(返回SqlDataReader)
 SqlDataReader rdr = this.LoadFromSqlReader("proc_GetSpecialEmployee", Parms) as SqlDataReader;

(4)LoadFromSqlScalar:(返回单个值)
 DateTime EarliestHireDate;
 ListDictionary Parms = new ListDictionary();
 Parms.Add("@Active", 1);
 EarliestHireDate = Convert.ToDateTime(this.LoadFromSqlScalar("GetEarliestHireDate",Parms));

(5)LoadFromRawSql:
 this.LoadFromRawSql("SELECT MIN(EM_HireDate) FROM tEmployees WHERE EM_Active = {0}","1");

 

3.  事务处理:

TransactionMgr tx  =  TransactionMgr.ThreadTransactionMgr();
try
{
    Employees emps 
= new Employees();
    emps.AddNew();
    emps.FirstName 
= "Jimmy";
    emps.LastName 
= "Doe";
    Products prds 
= new Products();
    prds.AddNew();
    prds.ProductName 
= " Lunch Box ";
    prds.Discontinued 
= false;
    tx.BeginTransaction();
    emps.Save();
    prds.Save();
    tx.CommitTransaction();
}

catch (Exception ex)
{
    tx.RollbackTransaction();
    TransactionMgr.ThreadTransactionMgrReset();
}


本文转自Silent Void博客园博客,原文链接:http://www.cnblogs.com/happyhippy/archive/2006/08/30/601234.html ,如需转载请自行联系原作者
相关文章
|
7月前
|
C# 数据库 数据格式
C#二十八 数据绑定
C#二十八 数据绑定
44 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新4
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新4
37 1
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新2
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新2
26 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新1
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新1
32 0
|
8月前
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新3
前端学习笔记202305学习笔记第三十一天-什么是mvc-数据操作和视图更新3
41 0
|
9月前
|
前端开发 JavaScript
Vue框架实现对前端数据表的增删改查(第六课)
Vue框架实现对前端数据表的增删改查(第六课)
154 0
|
存储 数据库 Swift
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
1239 1
SwiftUI极简教程20:CoreData数据持久化框架的使用(上)
|
关系型数据库 MySQL 数据处理
thinkphp5的excel导入数据事务处理代码片段
thinkphp5的excel导入数据事务处理代码片段
|
存储 SQL 关系型数据库
三十五、存储过程的基本使用
三十五、存储过程的基本使用
115 0
|
存储 数据库
三十三、视图
三十三、视图
93 0