2016-11-11 151 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;} 
相關問題