2013-06-07 1 views
3

C# Visual Studio 2012 профессиональный asp.netКак я могу показать несколько элементов (из многих) в моей таблице базы данных?

У меня есть таблица, содержащая имена пользователей: Джош, Джереми, Джаред, Джастин ...

И я создал веб-страницу GridView, которая показывает всю таблицу, но я только хотите, чтобы он показывал Джастина и ничего больше.

Как это сделать?

Вот код, который не работает:

SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True"); 
    SqlCommand cmd = new SqlCommand(); 
    cmd.Connection = con; 
    SqlDataReader rs; 

    con.Open(); 

    SqlParameter uName = new SqlParameter("paramFName", Account.Text); 

    cmd.Parameters.Add(uName); 

    cmd.CommandText = "SELECT * FROM Transactions WHERE [email protected]"; 
    rs = cmd.ExecuteReader(); 

    cmd.Parameters.Clear(); 
    rs.Close(); 

Я должен создать представление таблицы? Я попытался, но не был успешным.

советы?

+0

Недостаточно информации о работе с Didn't. Любое сообщение об исключении или ошибке? –

+1

Что не работает? В настоящий момент ваш код будет показывать всю запись с помощью nEName. Какой результат вы ожидаете и что получаете? –

+0

Когда я запускаю сайт, он по-прежнему показывает всю таблицу, а не строки выбора с моим именем – user2456977

ответ

2

Если вы пытаетесь выбрать первые 10 имен, например, то вам необходимо изменить ваш SQL Выберите на следующее:

cmd.CommandText = "SELECT TOP 10 * FROM Transactions WHERE [email protected]"; 

Это то, что вы были после?

EDIT

ОК, так что вы на самом деле не отображать данные в любом месте, которое является актуальной проблемой.

Вам необходимо создать datatable и отобразить его в виде сетки.

Заканчивать следующие ссылки на примеры:

Gridview examples

MSDN Gridview examples

+0

. Моя проблема в том, что мой код не отображается на моем веб-сайте. он все еще показывает все имена – user2456977

+0

Можете ли вы разместить немного кода для того, где вы на самом деле пытаетесь его отобразить? –

+0

Я думаю, что это моя проблема, я не знаю, как это сделать !!! Как мне отображать вещи. Я должен создать VIEW, или я делаю это через опции просмотра сетки ???? – user2456977

2

Вы просто пропустили "@" по имени параметра:

SqlParameter uName = new SqlParameter("@paramFName", Account.Text); 

В случае Вашего где-п это приводит к тому, что вы не предоставили ничего для указанного параметра, который sim чтобы поставщик запроса игнорировал это условие, что приводит к эффективному запросу SELECT * FROM Transactions.

Рядом вы должны думать об использовании using блока:

using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Database1.mdf;Integrated Security=True")) 
using (SqlCommand cmd = new SqlCommand()) 
{ 
    cmd.Connection = con; 
    cmd.CommandText = "SELECT * FROM Transactions WHERE [email protected]"; 
    cmd.Parameters.AddWithValue("@paramFName", Account.Text); 

    con.Open(); 
    using (var rs = cmd.ExecuteReader()) 
    { 
     //ToDo: Do something with the reader. 
    } 
} 

И еще один намека: Если вам нужно заполнить DataTable в результате, вы можете использовать SqlDataAdapter вместо того, чтобы использовать чтение данных:

using (var adapter = new SqlDataAdapter(cmd)) 
{ 
    var dataTable = new DataTable(); 
    dataTable.TableName = "QueryResult"; 
    adapter.Fill(dataTable); 

    return dataTable; 
} 
0

Ваш код кажется прекрасным, хотя вы не предоставляете много информации.

Если вы используете SQL Server 2012, посмотрите ключевые слова OFFSET and FETCH. Для более ранних версий вам необходимо использовать ROW_NUMBER OVER PARTITION

В качестве хорошей практики вы всегда должны ограничивать количество возвращаемых элементов.

+0

моя проблема в том, что мой код не отображается на моем сайте. он все еще показывает все имена – user2456977

+0

Какова ценность «Action.Text»? Поскольку @oliver сказал, что вам не хватает @ в имени параметра 'paramFName'; –

+0

Я сделал это, и ничего не произошло. Action.Text - это метка. Я даю ему значение имени пользователя – user2456977

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