silverlight访问MSSQL问题

zhangfengyi 2010-03-05 11:11:05
网上看了一篇关于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
...全文
144 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpt_adt2010 2010-03-19
  • 打赏
  • 举报
回复
呵呵,这个问题比较初级
zhangfengyi 2010-03-19
  • 打赏
  • 举报
回复
错误提示
jv9 2010-03-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zhangfengyi 的回复:]
现在又出另一个问题,查询不出数据库中的内容,出现以下错误提示:
[/Quote]

看不到错误提示信息。
zhangfengyi 2010-03-18
  • 打赏
  • 举报
回复
现在又出另一个问题,查询不出数据库中的内容,出现以下错误提示:


zhangfengyi 2010-03-18
  • 打赏
  • 举报
回复
问题已解决,SQL登录问题,必须SQL身份登录,SA登录以前设置不成功,是看了一篇文章解决的,贴出来与大家共享一下,版主jv9说的对,匿名登录不可以,必须得设置SQL登录才行
http://kb.cnblogs.com/a/1487810
最后一项还得勾选“映射到凭据”一项,才算最后完成,这个问题困扰我好长时间,总算总结了,真是不易
jv9 2010-03-10
  • 打赏
  • 举报
回复
引用 6 楼 zhangfengyi 的回复:
SQL无法设置SA登录,错误如下


自行创建一个新用户就可以了。
创建方法看这个链接: http://www.qqgb.com/DataDB/MSSQL/Sql2000JiQiao/DataDB_163740.html
zhangfengyi 2010-03-06
  • 打赏
  • 举报
回复
SQL无法设置SA登录,错误如下
jv9 2010-03-06
  • 打赏
  • 举报
回复
引用 4 楼 zhangfengyi 的回复:
数据库没有设密码啊!


必须有安全级别,才能登录数据库,你的错误信息是数据库已经连接,但是登录失败。MSSQL通常来说都有默认用户sa,或者你可以建立一个自定义用户,分配该用户控制你的数据库就可以了。

MSSQL不允许匿名登录。
boom_baby8 2010-03-06
  • 打赏
  • 举报
回复
Web.config 的Data Source=(local);改成Data Source=.\SQLEXPRESS;试试
jv9 2010-03-05
  • 打赏
  • 举报
回复
<add key="DbServiceConnectionString" value="Data Source=(local);Initial Catalog=CardManage;User Id=;Password=;"/>

在WebConfig中,配置数据库访问用户名和密码。
jv9 2010-03-05
  • 打赏
  • 举报
回复
数据库的用户名和密码都是空的,当然无法打开数据库了。
zhangfengyi 2010-03-05
  • 打赏
  • 举报
回复
Web.config
<appSettings>
<add key="DbServiceConnectionString" value="Data Source=(local);Initial Catalog=CardManage;User Id=;Password=;"/>
</appSettings>
zhangfengyi 2010-03-05
  • 打赏
  • 举报
回复
数据库没有设密码啊!

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧