服务器无法处理请求

smxzk 2009-12-25 02:57:45
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Data.SqlClient.SqlException: 参数化查询 '(@UserName varchar(256))SELECT [Password] FROM [Broker].[dbo].[U' 需要参数 @UserName,但未提供该参数。
在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
在 System.Data.SqlClient.SqlDataReader.get_MetaData()
在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
在 System.Data.SqlClient.SqlCommand.ExecuteScalar()
在 OSTS.Utility.DBHelper.ExecuteScalar(SqlConnection connection, CommandType cmdType, String cmdText, SqlParameter[] commandParameters) 位置 D:\Documents\IGS\Projects\股票交易系统_.NET\Source Code\券商端\Broker\OSTS.Utility\DBHelper.cs:行号 130
在 OSTS.Broker.SQLServerDAL.User.Login(String userName, String password) 位置 E:\股票交易\券商端\Broker\OSTS.Broker\SQLServerDAL\User.cs:行号 251
在 OSTS.Broker.BLL.User.Login(String userName, String password) 位置 E:\股票交易\券商端\Broker\OSTS.Broker\BLL\User.cs:行号 107
在 BrokerAPI.Login(String userName, String password) 位置 e:\股票交易\券商端\Broker\WebAPI\App_Code\BrokerAPI.cs:行号 222
--- 内部异常堆栈跟踪的结尾 ---




WebService 端的方法:

private readonly string m_brokerDBConnStr = @"Data Source=LD-2BD4667CA5B2;Initial Catalog=Broker;Persist Security Info=True;User ID=soft;Password=soft;";

private readonly string SQL_GET_PASSWORD_BY_USERNAME = "SELECT [Password] FROM [Broker].[dbo].[User] WHERE [UserName] = @UserName";


/// <summary>
/// User Login
/// </summary>
/// by Calvin 20090715
/// <param name="userName">Username</param>
/// <param name="password">Password</param>
/// <returns>Login result</returns>
public bool Login(string userName, string password)
{
string Password = "";

SqlParameter[] param = new SqlParameter[1];

#region 挷定参数
param[0] = new SqlParameter("@UserName", SqlDbType.VarChar, 256);
param[0].Value = userName;
#endregion

using (SqlConnection conn = new SqlConnection(this.m_brokerDBConnStr))
{
try{
conn.Open();
Password = Convert.ToString(DBHelper.ExecuteScalar(conn, CommandType.Text, SQL_GET_PASSWORD_BY_USERNAME, param));
}
catch
{
throw;
}
finally
{
conn.Close();
}
}

if (Password == password)
return true;

return false;
}


...全文
233 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
smxzk 2009-12-25
  • 打赏
  • 举报
回复
        /// <summary>
/// 登陆平台
/// </summary>
/// <param name="userName"></param>
/// <param name="password"></param>
/// <returns></returns>
public bool Login(string userName, string passWord)
{
return service.Login("s", "ssssssss");
}

这是UI层调用的方法 我把里面的参数直接换成常量。结果还是那样
Lovely_baby 2009-12-25
  • 打赏
  • 举报
回复
需要参数 @UserName,但未提供该参数。
你没有传值 或者传的是null
nosuchtracter 2009-12-25
  • 打赏
  • 举报
回复
userName
你看下这个字段有值吗?
mngzilin 2009-12-25
  • 打赏
  • 举报
回复
param[0].Value = userName==null?"":userName;

判断一下是否为null。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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