网上看了一篇关于SL访问MSSQL的文章,觉得很有用,照此做出现问题,不能继续,现把代码贴出来,大家给分析一下原因
DBService.svc:
private string connectionString = WebConfigurationManager.AppSettings["DbServiceConnectionString"];
[OperationContract]
public bool GetUser(string cUserName, string cPassword)
{
SqlConnection conn = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("Login", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@UserName", cUserName);
try
{
conn.Open();
SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.SingleRow);
if (reader.Read())
{
User user=new User((string)reader["cUserName"],(string)reader["cPassword"]);
if(user.Password==cPassword)
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
finally
{
conn.Close();
}
MainPage.xaml.cs:
private void GetUser()
{
EndpointAddress address = new EndpointAddress(new Uri(Application.Current.Host.Source, "/DBService.svc"));
DBServiceClient client = new DBServiceClient(new BasicHttpBinding(), address);
client.GetUserCompleted += client_GetUserCompleted;
client.GetUserAsync(txtUsername.Text, pbPassword.Password);
}
private void client_GetUserCompleted(object sender,GetUserCompletedEventArgs e)
{
try
{
if (e.Result)
{
tbMessage.Text = "登录成功";
}
else
{
tbMessage.Text = "登录失败";
}
}
catch (Exception error)
{
//tbMessage.Text = error.ToString();
HtmlPage.Window.Alert(error.ToString());
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
GetUser();
}
User.cs:
[DataContract()]
public class User:INotifyPropertyChanged
{
#region InotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
#endregion
private string userName;
[DataMember()]
public string UserName
{
get { return userName;}
set { userName = value; }
}
private string password;
[DataMember()]
public string Password
{
get { return password; }
set { password = value; }
}
public User(string sUserName, string sPassword)
{
userName = sUserName;
Password = sPassword;
}
存储过程:
CREATE PROCEDURE [dbo].[Login]
(@UserName Varchar(30))
AS
Select cUserName,cPassword
From User
Where cUserName=@UserName
RETURN
SET NOCOUNT ON