Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пробла с SELECT FROM c WHERE, MSSQL SELECT FROM WHERE 
V
    Опции темы
Osp
Дата 14.3.2010, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Есть код 
Код

private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length != 0 && textBox2.Text.Length != 0)
            {
                //Создание открытого подключения
                string connectionStr = @"Data Source=(local)\SQLEXPRESS;Initial Catalog=КИС;Integrated Security=SSPI;";
                SqlConnection dbConnection = new SqlConnection(connectionStr);
                dbConnection.Open();
                
                int id_w = int.Parse(textBox1.Text);
                string nam_w = textBox2.Text;
                string spec_w = comboBox1.Text;
                //MessageBox.Show(spec_w);
                string sqlSel = "SELECT id_spec_worker FROM spec_worker WHERE name_spec_worker = '" +spec_w+ "' ";
                using (SqlCommand command = new SqlCommand(sqlSel, dbConnection))
                {
                    //Отправляем команду
                    command.ExecuteNonQuery();
                }
                MessageBox.Show(sqlSel);
                
            }
            else
            {
                MessageBox.Show("Поля не заполнены");
            }
        }



Должно выводить код(id) специальности выбранной в comboBox1, а проблема в том что в messagebox выводит следующее
Код

SELECT id_spec_worker FROM spec_worker WHERE name_spec_worker = 'агент' 


В чем проблема может быть, не подскажете почему не выводить айди из базы данных по специальности агент....?

СПАСИБО!
PM MAIL WWW   Вверх
Экскалупатор
Дата 14.3.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



Цитата(Osp @  14.3.2010,  19:55 Найти цитируемый пост)
Должно выводить код(id) специальности выбранной в comboBox1, а проблема в том что в messagebox выводит следующее
    
SELECT id_spec_worker FROM spec_worker WHERE name_spec_worker = 'агент' 

В чем проблема может быть, не подскажете почему не выводить айди из базы данных по специальности агент....?


потешно. нет правда, потешно. 
ты выводишь в меседжбокс не результат, а строку запроса.
Код

string sqlSel = "SELECT id_spec_worker FROM spec_worker WHERE name_spec_worker = '" +spec_w+ "' ";
                using (SqlCommand command = new SqlCommand(sqlSel, dbConnection))
                {
                    //Отправляем команду
                    command.ExecuteNonQuery();
                }
                MessageBox.Show(sqlSel);


выводить нужно не sqlSel, а результат этой строки:
//Отправляем команду
                    command.ExecuteNonQuery();

в твоем случае замени command.ExecuteNonQuery();
на command.ExecuteScalar();
почитать про эту штуку можно тут.
она должна тебе возвратить результат, и этот результат нужно передать в меседжбокс.
PM MAIL ICQ   Вверх
Osp
Дата 14.3.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Код

{
                    //Отправляем команду
                    int count = (int)command.ExecuteScalar();
                }
                MessageBox.Show(count);



Пишет следующее - 

Код

Ошибка    1    Элемент "count" не существует в текущем контексте.    C:\Users\Yura\Documents\Visual Studio 2008\Projects\WindowsFormsApplication1\WindowsFormsApplication1\Empl.cs    65    33    WindowsFormsApplication1




Не могу понять в чем проблема?


Это сообщение отредактировал(а) Osp - 14.3.2010, 21:37
PM MAIL WWW   Вверх
Экскалупатор
Дата 14.3.2010, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 3
Всего: 24



Osp, я в предыдущем твоем топике уже говорил: "приобрети себе книжку по программированию". и там, в этой книжке, обычно в одном из первых разделов, есть такая глава как "Видимость переменных"(или "область видимости переменных") ты объявляешь переменную внутри блока using. это значит что эта переменная доступна только внутри этого блока(и только после(ниже) ее объявления). а пытаешься ты ее использовать вне области ее видимости. вывод: либо надо переменную объявить "выше" блока using, либо вывод меседжбокса переместить в блок using.

Это сообщение отредактировал(а) Экскалупатор - 14.3.2010, 21:58
PM MAIL ICQ   Вверх
Osp
Дата 14.3.2010, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 21
Регистрация: 11.3.2010

Репутация: нет
Всего: нет



Спасибо!

Добавлено @ 22:09
Все работает, вот код может кому то пригодится:
Код

 private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text.Length != 0 && textBox2.Text.Length != 0)
            {
                //Создание открытого подключения
                string connectionStr = @"Data Source=(local)\SQLEXPRESS;Initial Catalog=КИС;Integrated Security=SSPI;";
                SqlConnection dbConnection = new SqlConnection(connectionStr);
                dbConnection.Open();
                
                int id_w = int.Parse(textBox1.Text);
                string nam_w = textBox2.Text;
                string spec_w = comboBox1.Text;
                //MessageBox.Show(spec_w);
                string sqlSel = "SELECT id_spec_worker FROM spec_worker WHERE name_spec_worker = '" +spec_w+ "' ";
                using (SqlCommand command = new SqlCommand(sqlSel, dbConnection))
                {
                    //Отправляем команду
                    int count = (int)command.ExecuteScalar();
                    string count1 = Convert.ToString(count);
                    MessageBox.Show(count1);
                }
                
             }
            else
            {
                MessageBox.Show("Поля не заполнены");
            }
        }


Это сообщение отредактировал(а) Osp - 14.3.2010, 22:10
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0683 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.