2016-11-11 3 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 может не соответствовать. Рассмотрите возможность установки 'cmd.ExecuteNonQuery()' после 'CommandType.StoredProcedure'. И почему использование '_JoinRoomSubPayment' в качестве исходной таблицы в' da.Fill (ds, "_JoinRoomSubPayment") '? –

+0

Я не вижу ошибки, пожалуйста, объясните мне, что такое ошибка? мой SP не подходит, почему? thanks – Newbie10

+0

Используйте режим отладки в проекте VS, объясните, какая строка вашего кода выдает ошибку. Я могу сказать, что ваше назначение SP не подходит с момента вызова метода ExecuteNonQuery() до определения 'CommandType' в' SqlCommand', что не имеет смысла. Используете ли вы '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;} 
Смежные вопросы