关于Silverlight通过WCF链接数据库报错的问题
先谢谢下大家的帮助,我总算是可以用VS2008来编写SilverLight的程序了。
我根据http://www.silverlightchina.net/html/tips/2009/1229/503_2.html里的教程写了一个自己访问数据库的代码。
没有适用调用存储过程,而是自己写的SQL去访问,报了下面一个错误
bool _result = ((bool)(base.EndInvoke("GetUser", _args, result)));
communicationExcaption 上面那个东西没有找到。
下面的代码是我写到WCF Service.cs里的
public bool GetUser(string cUserName, string cPassword)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("select * form psnwkokyaku", conn);
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
return true;
}
finally
{
conn.Close();
}
}
麻烦大家帮忙看看。第一次使用WCF访问数据库。。。什么都不知道。
PS:在客户端调用,也就是xaml.cs里的什么:
client.GetUserCompleted += client_GetUserCompleted;
client.GetUserAsync("1","2");
这两行没看懂。。。实施第一行在执行的时候就进入WCF Service.cs的GetUser?但是我打断点又找不到。。。极度茫然。
PPS:如果大家有WCF访问数据库最初级的教程的话,也请大家告诉我。。。现在的我是完全搞不清楚状况了。。。
[解决办法]
你加上了有这句么?:
private string connectionString = WebConfigurationManager.AppSettings["DbServiceConnectionString"];
client.GetUserCompleted += client_GetUserCompleted;
client.GetUserAsync("1","2");
第一句表示为为GetUserCompleted事件(也就是查询完成的事件)添加一个处理程序,你可以看看C#的委托
第二句才表示调用函数,执行查询
[解决办法]
什么是“第一次使用WCF访问数据库。。。什么都不知道。”?
client.GetUserCompleted += client_GetUserCompleted;
client.GetUserAsync("1","2");
上面的代码要和原项目一起看,
DBServiceClient client = new DBServiceClient(new BasicHttpBinding(), address);
这里DBServiceClient 是service reference里的类,该类是调用的服务器端的WCF服务。
声明这个类实例client,就可以通过数据契约和契约成员调用服务器端的函数。
这样说能明白一些么?
这里有更多的Silverlight访问数据库资料
http://www.silverlightchina.net/html/zhuantixilie/2009/1210/387.html
[解决办法]