asp.net 强数据类型 asp.net 强数据类型

来源:互联网 发布:用javac编译java文件 编辑:程序博客网 时间:2024/05/13 15:59

关于上次说的强类型dataset中事务问题的解决办法,也实用于一般的事务解决方案

TransactionScope 类提供一个简单方法,通过这一方法,您不必与事务本身交互,即可将代码块标记为参与某个事务。事务范围可以自动选择和管理环境事务。由于它易于使用并且效率很高,因此建议您在开发事务应用程序时使用 TransactionScope 类。

此外,您不必显式向事务登记资源。任何 System.Transactions 资源管理器(例如 SQL Server 2005)都可以检测到该范围创建的环境事务的存在并自动登记。
在使用前,应该保证MSDTC(分布式事务协调处理器)服务是启动的:
如下图:

因此,在做强类型设计的时候,你可以这样来写代码:
步骤如下:

1 在项目引用中加入(.net2.0)System.Transactions
2 在头部加入using System.Transactions;
3 加入以下代码片段:

 using (System.Transactions.TransactionScope updateTransaction =new System.Transactions.TransactionScope())
            
{
                ta.InsertName(
"1456789""456""456");
                ta1.InsertName1(
"1456145614561456""456""456");

                updateTransaction.Complete();
              
            }


注意:此命名空间在 .NET Framework 2.0 版中是新增的。

 

特别注意的事项:

只能在 Windows 2000、Windows XP 和 Windows 2003 平台上使用此命名空间创建应用程序

 

强数据类型返回的一般是一个表,取得表中某一distinct列的方法.

应用强数据类型一般返回的是整个强数据类型的一个表,有时候我们只需要表中的某一个字段,而因为应用了强数据类型,不能直接的更改SQL语句而返回单独的一个Distinct列,但是有时候我们确实只需要其中的一个列的内容,尤其是在部门名称/类型名称等方面的选择方面,经过研究,有了以下的实现方法.通过硬编码来弥补这个空白,以下为实现的方法,写下来,免得自己忘记.

  private void button1_Click(object sender, EventArgs e)
        
{
            DataSet1.testDataTable dt 
= new DataSet1.testDataTable();
            DataSet1TableAdapters.testTableAdapter ta 
= new testDistInct.DataSet1TableAdapters.testTableAdapter();
            dt 
= ta.GetData();
           
            
bool flag;
            
foreach (DataSet1.testRow tr in dt)
            
{
                flag 
= false;
                
for (int i = 0; i < comboBox1.Items.Count; i++)
                
{
                    
if (tr.Name == comboBox1.Items[i].ToString())
                        flag 
= true;
                }

                
if(!flag)
                    comboBox1.Items.Add(tr.Name);
            }

        }
原创粉丝点击