2016-11-11 115 views
0

我正在开发一个在线预订,并从客户端页面我希望他的交易通过gridview查看,但程序返回一个错误,它说“其他信息:过程或函数'JoinRoomSubPayment'预计参数'@USERNAME',没有提供。“从数据库显示表格到gridview

这里是我的代码:

SQL:

SELECT USERNAME, FIRST_NAME, LAST_NAME, BIRTHDAY, CONTACT_NUMBER, EMAIL_ADDRESS, HOME_ADDRESS FROM TBL_Client 
WHERE USERNAME = @USERNAME 

ClassDisplaySummary.cs:

public DataSet _JoinRoomSubPayment(string user){ 
conn.Open(); 
SqlCommand cmd = new SqlCommand("JoinRoomSubPayment", conn); 
cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar).Value = user; 
cmd.ExecuteNonQuery(); 
cmd.CommandType = CommandType.StoredProcedure; 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
ds.Clear(); 
da.Fill(ds, "_JoinRoomSubPayment"); 
conn.Close(); 
return ds;} 

ClientPage.aspx.cs:

user = Session["username"].ToString(); 
SummaryGView.DataSource = cd._JoinRoomSubPayment(user).Tables["_JoinRoomSubPayment"]; 
SummaryGView.DataBind(); 

任何帮助,将赞赏

+0

您的查询语句似乎正确,但SP使用可能不适合。考虑在'CommandType.StoredProcedure'之后放置'cmd.ExecuteNonQuery()'。为什么在'da.Fill(ds,“_JoinRoomSubPayment”)'中使用'_JoinRoomSubPayment'作为源表? –

+0

我看不到错误,请向我解释什么是错误?我的SP不合适,为什么?谢谢 – Newbie10

+0

在VS项目中使用调试模式,解释哪一行代码会引发错误。我可以告诉你,由于在将'CommandType'定义为'SqlCommand'之前所调用的ExecuteNonQuery()'方法不符合你的SP分配,这是没有意义的。您是否使用'CREATE PROCEDURE JoinRoomSubPayment'来构建存储过程? –

回答

0

您的陈述似乎正确,可能由于cmd.ExecuteNonQuery();从您的代码删除此行,然后尝试

public DataSet _JoinRoomSubPayment(string user){ 
conn.Open(); 
SqlCommand cmd = new SqlCommand("JoinRoomSubPayment", conn); 
cmd.Parameters.Add("@USERNAME", SqlDbType.VarChar).Value = user; 
// cmd.ExecuteNonQuery(); remove this line from your code 
cmd.CommandType = CommandType.StoredProcedure; 
SqlDataAdapter da = new SqlDataAdapter(cmd); 
ds.Clear(); 
da.Fill(ds, "_JoinRoomSubPayment"); 
conn.Close(); 
return ds;}