silverlight 4 调用客户机ADO

今天突发奇想,想到silverlight 4 可以使用com组件的话,那么我的sliverlgiht应用就可以在所运行的客户机上直接使用sql server数据库。经过测试,的确可让,只不过须要自己编写T-SQL没有使用RIA SERVICE那么方便。

首先:同样客户机必须被用户运行于离开浏览器。而且你的应用中项目属性钩选是取得高级信任权限.

然后确保客户机上已经安装ado.net组件。

1.使用dynamic取得ado.net的com

dynamic conn = ComAutomationFactory.CreateObject("ADODB.Connection");

2.设定连接字符串并启动连接

conn.ConnectionString = @"Provider=SQLOLEDB.1;Integrated Security=SSPI;" +                                       

@"Persist Security Info=False;Initial Catalog=AdventureWorks2008;" +

@"Data Source=.\MSSQL08";  

conn.Open();

3.执行查询

dynamic rs = conn.Execute("SELECT Name, ProductNumber, ListPrice, SellStartDate " +

"FROM Production.Product ORDER BY Name");

4.把数据内容读出

while (!rs.EOF)        

{

   l.Add(new Product() { Name = rs["Name"].Value,

   ProductNumber = rs["ProductNumber"].Value,

   ListPrice = rs["ListPrice"].Value, 

   SellStartDate = rs["SellStartDate"].Value }); 

   rs.MoveNext();

}

   rs.Close();

   conn.Close();

Product是一个我定义的空集。大家按自己的情况修改。

欢迎您参与更多关于此话题的讨论,本文原创地址为:http://funsl.com 谢绝转载

评论

pengxingyun
pengxingyun 的头像
User offline. Last seen 1 年 37 周 ago. Offline
Joined: 05/11/2010
ComAutomationFactory

ComAutomationFactory的命名空间是?

黎东海
黎东海 的头像
User offline. Last seen 8 小时 31 分钟 ago. Offline
Joined: 09/13/2009
re:Peng

在最新的silverlight 4 RTM中这个功能作了一些改动。改为如下:
System.Runtime.InteropServices.Automation.AutomationFactory.CreateObject();
命名空间更改到System.Runtime.InteropServices.Automation下。
并改名为:AutomationFactory