Как я могу упростить код? (Результат DataSet) - PullRequest
0 голосов
/ 28 августа 2018

У меня есть код:

MySqlCommand cmd = connection.CreateCommand();
                cmd.CommandText = "SELECT nom, prenom from liste_personnels where mail ='" + mailTest + "'";
                MySqlDataAdapter adap = new MySqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                adap.Fill(ds);
                nom = ds.Tables[0].Rows[0].ItemArray[0].ToString();
                prenom = ds.Tables[0].Rows[0].ItemArray[1].ToString();

Я нашел, как извлечь переменные nom и prenom, но я думаю, что это сложно .. Можно упростить мой код - результат dataSet, чтобы разделить две мои переменные et в одну таблицу?

Спасибо за помощь.

1 Ответ

0 голосов
/ 28 августа 2018

DataSet кажется излишним; Я бы использовал простой MySqlDataReader. (Кроме того, используйте параметры для предотвращения внедрения SQL.)

string nom = null, prenom = null;
using (var cmd = connection.CreateCommand())
{
    // create the command and bind the parameter; this prevents SQL injection
    cmd.CommandText = "SELECT nom, prenom from liste_personnels where mail = @mail";
    cmd.Parameters.AddWithValue("@mail", mailtest);
    using (var reader = cmd.ExecuteReader())
    {
        // check if a row was found in the DB; you may need to handle if it's false
        if (reader.Read())
        {
            // read the data
            nom = reader.GetString(0);
            prenom = reader.GetString(1);
        }
    }
}

Наконец, если вы можете добавить другую библиотеку в свой проект, я бы использовал Dapper , чтобы упростить приведенный выше код:

var result = connection.Query(
        "SELECT nom, prenom from liste_personnels where mail = @mailtest",
        new { mailtest })
    .SingleOrDefault();
var nom = (string) result?.nom;
var prenom = (string) result?.prenom;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...