2014-12-26 2 views
0

поэтому мой GridView возвращает все данные в моей таблице, но я хочу вернуть данные, связанные с атрибутом UserName в таблице, помните, что у меня есть несколько UserName в таблице ,, передающий параметр GridView при вызове данных из базы данных

я попытался дать моя функция строковое имя пользователя и в моей Page_Load:

string SessionName; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    SessionName = Session["Username"].ToString(); 
    DataSet ds = InsertClass.GetCart(SessionName); 


} 

в моем классе:

public static DataSet GetCart(string UserName) 
{ 
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString()); 
    conn.Open(); 
    SqlCommand cmd = new SqlCommand("SELECT * FROM [ShoppingCart] WHERE UserName = @UserName ", conn); 
    cmd.CommandType = CommandType.Text; 

    cmd.Parameters.Add(new SqlParameter("@UserName", UserName)); 


    DataSet ds = new DataSet(); 
    SqlDataAdapter adapter1 = new SqlDataAdapter(cmd); 
    adapter1.Fill(ds); 
    conn.Close(); 
    return ds; 
} 

Изменить: Моя ошибка, ребята я не добавить параметр к моей функции, потому что я пытался много вещей, прежде чем я задал вопрос и забыл вернуть его обратно.

+0

в команде текста я обычно не делаю параметры, но быстрый поиск показал мне, что вы делаете cmd.Parameters.AddWithValue (....); вместо cmd.Parameters.Add (....); http://dan.folkes.me/2011/09/21/asp-net-adding-parameters-to-commandtype-text/ – CBRRacer

+0

Вы не передаете 'username' как строковый параметр здесь в вашем коде' public static DataSet GetCart() ' – Avijit

+0

Хорошо, что происходит, когда вы пишете это так, что у вас есть в наборе данных, есть ли у вас какие-либо исключения. – mybirthname

ответ

0

Вы не проходя username в качестве параметра строки здесь в коде public static DataSet GetCart()

Вот правильный:

public static DataSet GetCart(string userName) 
    { 
     SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ToString()); 
     conn.Open(); 
     SqlCommand cmd = new SqlCommand("SELECT * FROM [ShoppingCart] WHERE UserName = @UserName ", conn); 
     cmd.CommandType = CommandType.Text; 

     cmd.Parameters.AddWithValue("@UserName", userName); 

     DataSet ds = new DataSet(); 
     SqlDataAdapter adapter1 = new SqlDataAdapter(cmd); 
     adapter1.Fill(ds); 
     conn.Close(); 
     return ds; 
    } 
+0

забыл добавить его до публикации извините – user3671619

+0

Надеюсь, что это решило вашу проблему. Вы можете принять этот ответ. – Avijit

0

Так что в вашем Page_Load вы вызываете вашу функцию GetCart с параметром имя_сеанса, но я не могу видеть, ваша функция GetCart принимает любой параметр:

DataSet ds = InsertClass.GetCart(SessionName); 

public static DataSet GetCart() 
{.....} 

А что такое ссылка UserName, при добавлении параметра к sql запросу:

cmd.Parameters.Add(new SqlParameter("@UserName", UserName)); 

Вы отлаживали и видели, что вы передаете правильный параметр?

+0

забыл добавить его до публикации извините – user3671619

Смежные вопросы