Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.01.2012, 13:40   #1
Корделия
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 21
Печаль MySQL и C#

Не могу решить некоторую задачу. Необходимо считать значение с таблицы в MySQL и сравнить со значением задаваемым в форме с клавиатуры. Везде пишут что считывание из MySQL производится с помощью ExecuteReader.

Думала что что-то вроде

string sql = "select Password FROM nata.spisok where Familia = '"+ Family +"' AND Name ='"+ Name1 +"';";
MySqlCommand command = new MySqlCommand(sql, myConnection);

MySqlDataReader reader = command.ExecuteReader();

String Pass = Convert.ToString(reader);

if (String.CompareOrdinal(Pass, Password) != 0)
{
toolStripStatusLabel1.Text = "Введенные данные не верны.Доступ запрещен";
}

else
{
toolStripStatusLabel1.Text = "Подключение прошло успешно";
}

command.Dispose();





Однако если просматривать с точкой останова то значение которое считывается в переменную reader {MySql.Data.MySqlClient.MySqlDataRe ader} Итак я не поняла как мне в переменную считать именно то что выдается по SQL запросу????
Корделия вне форума Ответить с цитированием
Старый 26.01.2012, 15:03   #2
bogdanchek
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию

Поидее так :
Код:
string sql = "select Password FROM nata.spisok where Familia = '"+ Family +"' AND Name ='"+ Name1 +"';";
 MySqlCommand command = new MySqlCommand(sql, myConnection);

 MySqlDataReader reader = command.ExecuteReader();

 String Pass = reader.GetString(0);
// если запрос возвращает больше параметров чем 1, их можно достать так : reader.GetString{или GetInt32 и т.п.}({номер параметра по порядку})

 if (String.CompareOrdinal(Pass, Password) != 0)
 {
 toolStripStatusLabel1.Text = "Введенные данные не верны.Доступ запрещен";
 }

 else
 {
 toolStripStatusLabel1.Text = "Подключение прошло успешно";
 }

 command.Dispose();
ну и желательно позакрывать за собой конекшены и ридеры.

Последний раз редактировалось bogdanchek; 26.01.2012 в 15:06.
bogdanchek вне форума Ответить с цитированием
Старый 26.01.2012, 17:27   #3
Корделия
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 21
По умолчанию

уже сама намучилась.Сделала только по другому...




string sql = "select Password FROM nata.spisok where Familia = '" + Family + "' AND Name ='" + Name1 + "';";
MySqlCommand command = new MySqlCommand(sql, myConnection);
command.ExecuteNonQuery();

//MySqlDataReader reader = command.ExecuteReader();

Int32 PassWord1 = Convert.ToInt32(Password);

Int32 Pass = Convert.ToInt32(command.ExecuteScal ar());

if (Pass == PassWord1)
{
toolStripStatusLabel1.Text = "Подключение прошло успешно.";
toolStripButton1.Enabled = false;
toolStripButton2.Enabled = true;
toolStripButton3.Enabled = true;
toolStripButton4.Enabled = true;
toolStripButton5.Enabled = true;
button1.Enabled = true;
button2.Enabled = true;
ToolStripMenuItem1.Enabled = false;
ToolStripMenuItem2.Enabled = true;
ToolStripMenuItem3.Enabled = true;
ToolStripMenuItem4.Enabled = true;

}

else
{
toolStripStatusLabel1.Text = "Введенные данные не верны.Доступ запрещен";
myConnection.Close();
myConnection.Dispose();
}
Корделия вне форума Ответить с цитированием
Старый 26.01.2012, 17:32   #4
Корделия
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 21
По умолчанию

Но у меня новый вопросик)))

Если мне нужно чтобы в ComboBox автоматически загружались данные из таблицы в базе данных MySQL. нет не единой идеи как это сделать.на подскажите?
Корделия вне форума Ответить с цитированием
Старый 26.01.2012, 18:18   #5
bogdanchek
Пользователь
 
Регистрация: 26.01.2012
Сообщений: 10
По умолчанию

Код:
command.ExecuteScal ar()
делает тоже что
Код:
command.ExecuteReader()
только единоразово, а ридер позволяет считать не одну строку а все.

По вашему вопросу с комбобоксом :
создаем List<> ваших данных из БД, считываем туда что нужно, потом делаем так :
Код:
            comboBox1.DataSource = {ваш лист};
            comboBox1.DisplayMember = "{здесь имя столбика из бд, который вы хотите видеть в комбо боксе}";
            comboBox1.ValueMember = "Id";

Последний раз редактировалось bogdanchek; 26.01.2012 в 18:22.
bogdanchek вне форума Ответить с цитированием
Старый 31.01.2012, 16:27   #6
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию

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

//Код программы
... ... ...
using(SqlConnection connection = new SqlConnection())
{
//Код работы с БД
... ... ...
}
//Когда выполнение кода программы перейдет сюда, то подключение автоматически
//закроется. Так же можно поступать при работе с файлами, при работе с //SqlDataReaderom и тд и тп.
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 04.02.2012, 21:37   #7
Корделия
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 21
По умолчанию

bogdanchek



не поняла...а {ваш лист} Это что???
Корделия вне форума Ответить с цитированием
Старый 04.02.2012, 22:37   #8
Корделия
Пользователь
 
Регистрация: 28.04.2009
Сообщений: 21
По умолчанию

Вообще...я мало понимаю как работать с ним.. с этим comboBox. не могли бы прислать статьи...которые бы поясняли работу эту.потому что я что то вообще в тупике полном
Корделия вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mysql+Delphi 2010 Использую libmysql.dll + mysql.pas не могу инф сохранить в базу kGpROGER БД в Delphi 7 30.12.2010 18:27
есть адреси в mysql нужно поиска с AJAX for mysql orter PHP 1 24.09.2010 10:24
обновление в блоге - Работа с MySQL в С++ с использованием библиотеки mysql++ Pblog Обсуждение статей 0 16.08.2009 16:00
MySQL нужна библ. для Visual C++ (MySql++) Alexoid Visual C++ 8 07.05.2008 18:29