Как выбрать много тегов на таблице и сохранить его в списке <string> - PullRequest
0 голосов
/ 06 июля 2019

Я хочу знать, как взять все теги, которые у меня есть на столе, и сохранить их в списке.

string query = "SELECT JobNumber + JobName + JobTag FROM dbo.Cat05Projects WHERE JobNumber = @JobNumber AND JobTag = @JobTag";
SqlCommand command = new SqlCommand(query, cn);
command.Parameters.AddWithValue("JobNumber", JobNumber);
command.Parameters.AddWithValue("JobTag", JobTag);

SqlDataReader reader = command.ExecuteReader();

if (reader.HasRows)
{
     while (reader.Read())
     {
         tags.Add(reader[0].ToString());
         tags.Add(reader[1].ToString());
         tags.Add(reader[2].ToString());

     }
 }

Ответы [ 2 ]

1 голос
/ 06 июля 2019

из-за вашей конкатенации (JobNumber + JobName + JobTag) невозможно использовать reader[X].ToString(), потому что будет возвращена только одна строка.Для правильного извлечения записей вы должны использовать запятую вместо плюс , как показано ниже.

string query = "SELECT JobNumber , JobName , JobTag FROM dbo.Cat05Projects WHERE JobNumber = @JobNumber AND JobTag = @JobTag";

Вы ничего не упомянули о tags структура данных, но если я не ошибаюсь, после получения правильного ответа, если вы пытаетесь получить только JobTag , вы можете использовать LINQ для фильтрации окончательного списка.

0 голосов
/ 09 июля 2019

Это то, что я хотел

query = "SELECT * FROM dbo.Cat05Projects WHERE JobNumber = @JobNumber AND JobTag = @JobTag";
                command = new SqlCommand(query, cn);
                command.Parameters.AddWithValue("JobNumber", JobNumber);
                command.Parameters.AddWithValue("JobTag", JobTag);

                SqlDataReader reader = command.ExecuteReader();

                while (reader.Read())
                {
                    for (int i = 1; i < reader.FieldCount; i++)
                    {
                        lista.Add(reader[i].ToString());
                    }
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...