c # LINQ найти значение в хранилище данных - PullRequest
0 голосов
/ 10 октября 2019

Это моя таблица в базе данных MySQL:

+----------+--------+---------+
| UserName | Region | UsercIX |
+----------+--------+---------+
| a123456  | X410   | NULL    |
| a123456  | X420   |       1 |
| a123456  | X430   | NULL    |
| a123456  | X440   |       1 |
+----------+--------+---------+

Пользователь a123456 поддерживает запись для X420 и X440 Region (UsercIX = 1) и чтение для X410 и X430 Регион ( UsercIX = NULL ).

Мне нужнонайдите в этой таблице -via LINQ или значения только для вашего предложения, равные 1 в столбце UsercIX , поскольку при DataReader извлекается первое значение столбца, котороеимеет значение null.

Пожалуйста, вы мне поможете?

Мой код указан ниже

using (OdbcDataReader reader = command.ExecuteReader())
{
    if (reader.HasRows)
    {
        while (reader.Read())
        {
           int UsercIX = Convert.ToInt32(reader["UsercIX"]);  //IS NULL
        }
    }
}

Редактировать # 01

using (OdbcDataReader reader = command.ExecuteReader())
{
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            int UsercIX = reader.GetInt32(6);
        }
    }                            
}

Ответы [ 2 ]

1 голос
/ 10 октября 2019

Могу ли я предложить выполнить синтаксический анализ значения?

     int number;

     bool success = Int32.TryParse((reader["UsercIX"], out number);
     if (success)
     {
             // it worked, yay
     }
     else
     {
             // ?
     }
0 голосов
/ 10 октября 2019

Я думаю, вы должны получить доступ к значениям следующим образом:

**SqlDataReader** reader = command.ExecuteReader();

int UsercIX = reader.GetInt32(2);

с помощью цикла while. Столбцы начинаются с 0

. В конце концов, вы получаете ошибку при доступе к Null-значению, а затем используете структуру try () {} catch () {}, чтобы избежать этого. - Надеюсь, это поможет!

Вот полный пример для mysql;

public void CreateMySqlDataReader(string mySelectQuery, MySqlConnection myConnection)
{
MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection);
myConnection.Open();
MMySqlDataReader myReader;
myReader = myCommand.ExecuteReader();
try
{
while(myReader.Read())
{
Console.WriteLine(myReader.GetString(0));
}
}
finally
{
myReader.Close();
myConnection.Close();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...