【求救】Silverlight中调用WebService问题
最近学习Silverlight,做了一个用户登录。
数据库:SQL Server 2008
服务端:WebService.asmx和实体模型UserModel.edmx(UserEntities)
WebService代码为:
/// <summary>
/// WebServie 的摘要说明
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消注释以下行。
// [System.Web.Script.Services.ScriptService]
public class WebServie : System.Web.Services.WebService
{
#region 获得当前登录用户
/// <summary>
/// 获得当前登录用户
/// </summary>
/// <param name="loginName">登录名</param>
/// <returns>当前登录用户</returns>
[WebMethod]
public T_User GetUser(string loginName)
{
using (UserEntities entity = new UserEntities())
{
return entity.T_User.Find(loginName);
}
}
#endregion
}
public partial class LoginPanel : UserControl
{
private WebServieSoapClient client;
public LoginPanel()
{
client = new WebServieSoapClient();
InitializeComponent();
}
#region 登录验证
private void btnLogin_Click(object sender, RoutedEventArgs e)
{
client.GetUserCompleted += client_GetUserCompleted;
client.GetUserAsync(txtLoginName.Text);
}
private void client_GetUserCompleted(object sender, GetUserCompletedEventArgs e)
{
if (e.Error == null)
{
string loginName = txtLoginName.Text;
string pwd = txtPWD.Password;
T_User user = e.Result;
if (user == null)
{
tbWARN.Text = "该用户不存在!";
}
if ((user != null) && (user.LoginName == loginName))
{
if (user.Pwd != pwd)
{
tbWARN.Text = "密码错误!";
}
else
{
MessageBox("验证成功!");
}
}
}
else
{
throw e.Error;
}
}
#endregion
}
client.GetUserCompleted -= client_GetUserCompleted;
client.GetUserCompleted += client_GetUserCompleted;