又是一个传问题

简购 2010-05-31 04:08:13
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

被准备语句 '(@username nvarchar(4000))select albumID,albumName from album wh' 需要参数 @username,但未提供该参数。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.SqlClient.SqlException: 被准备语句 '(@username nvarchar(4000))select albumID,albumName from album wh' 需要参数 @username,但未提供该参数。

源错误:


行 53: cmd = helper.GetCommand(strsql, parm);
行 54: DataTable dt = new DataTable();
行 55: using (SqlDataReader rdr = cmd.ExecuteReader())
行 56: {
行 57: dt.Load(rdr);


源文件: d:\otherweb\shengse\App_Code\DB.cs 行: 55
这个错误又该怎么改?
...全文
84 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
GT7466 2010-06-12
  • 打赏
  • 举报
回复
wwewertwtwertw
简购 2010-06-01
  • 打赏
  • 举报
回复
按照你们中的方法,已经解决了。谢谢你们。
jshi123 2010-06-01
  • 打赏
  • 举报
回复
因为Session["username"]取到的值是null
在GetAlbumName方法开头加个判断
if (user == null)
return null;
GT7466 2010-05-31
  • 打赏
  • 举报
回复

SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter ("@username",user)
};

parm[0].Value="userName"; //这里要赋值

SqlCommand cmd = new SqlCommand();
cmd = helper.GetCommand(strsql, parm);

简购 2010-05-31
  • 打赏
  • 举报
回复
错在那里能说详细一点吗?
aiguo0713 2010-05-31
  • 打赏
  • 举报
回复
sql 语句的错误
简购 2010-05-31
  • 打赏
  • 举报
回复
传参的语句为:<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="GetAlbumName"
TypeName="DB">
<SelectParameters>
<asp:SessionParameter Name="user" SessionField="username" Type="string" />
</SelectParameters>
</asp:ObjectDataSource>
小黑哥gs 2010-05-31
  • 打赏
  • 举报
回复
你服务器上的存储过程的参数是否是username,参数大小是否一致。。还有我定义的SqlParameter[]是这样的

SqlParameter[] parameters = {
new SqlParameter("@username", SqlDbType.NVarChar,500)
}
parameters[0].Value = username;

简购 2010-05-31
  • 打赏
  • 举报
回复
在本地测试没有问题。可上传到服务器就有错。
简购 2010-05-31
  • 打赏
  • 举报
回复
完整程序:
public DataTable GetAlbumName(string user)
{
SqlHelper helper = new SqlHelper();
string strsql = "select albumID,albumName from album where username=@username";
SqlParameter[] parm = new SqlParameter[]
{
new SqlParameter ("@username",user)
};
SqlCommand cmd = new SqlCommand();
cmd = helper.GetCommand(strsql, parm);
DataTable dt = new DataTable();
using (SqlDataReader rdr = cmd.ExecuteReader())
{
dt.Load(rdr);
}
return dt;
}
空心兜兜 2010-05-31
  • 打赏
  • 举报
回复
不知这是什么存储过程

62,041

社区成员

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

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

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

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