MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理
2006-08-29 17:41
721 查看
同上篇,主要是参考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();
}
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();
}
相关文章推荐
- MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理
- MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理
- MyGeneration学习笔记(8) :dOOdad提供的数据绑定、特殊函数和事务处理
- 黑马程序员之ADO.NET学习笔记:网络数据的事务处理
- 计算机视觉与图像处理学习笔记(三)opencv的基本数据类型与简单图像处理函数
- MyCat 学习笔记 第十二篇.数据分片 之 分片事务处理
- ASP.NET 3.5核心编程学习笔记(23):Linq-to-SQL 数据的更新、事务、存储过程、函数
- 【转载】wpf学习笔记数据绑定8
- Linux icmp 学习笔记 之二 icmp数据处理流程
- Asp.Net--DropDownList与DataTable数据绑定的方法(C#)[学习笔记]
- SilverLight学习笔记--关于使用IValueConvert对绑定数据的格式化操作
- C++学习笔记3 - 处理数据
- 学习笔记 - 数据绑定之knockout
- [学习笔记]信号基本概念(中断和信号)/名称及常用信号/信号处理/signal函数实践
- WPF学习笔记:ComboBox的数据绑定
- php学习笔记之事务处理
- PHP学习笔记——使用回调函数处理数组函数array_map()
- JS学习笔记——AngularJS 1.x双向数据绑定机制
- 【mysql学习笔记】-事务处理
- Oracle笔记(七) 数据更新、事务处理、数据伪列