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是一个我定义的空集。大家按自己的情况修改。