1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Вопросы по Listbox, Msql и конект

Тема в разделе ".NET - программирование", создана пользователем Niceday, 28 фев 2007.

  1. Niceday

    Niceday Гость

    Репутация:
    0
    собственно вот текст программы:

    Код:
    using System;
    using System.Windows.Forms;
    using System.Drawing;
    using System.Data.Sql;
    using System.Data.SqlClient;
    using System.Data.SqlTypes;
    using System.IO;
    
    class MainForm : Form
    {
    public MainForm()
    {
    Text = "Products";
    list = new ListBox();
    list.Location = new Point(15, 15);
    list.Size = new Size(200, 200);
    this.Controls.Add(list);
    using (SqlConnection connection = new SqlConnection("server=сервер;Type System Version=SQL Server 2005;User ID=юзер;database=база"))
    {
    connection.Open();
    if (String.Format("{0}", connection.State) == "Open")
    {
    MessageBox.Show(String.Format("Connection Status: {0} \nServer: {1} \nServer Version: {2} \nBase Name: {3}", connection.State, connection.DataSource, connection.ServerVersion, connection.Database));
    SqlCommand command = new SqlCommand("SELECT [ProductName] FROM [Products]", connection);
    SqlDataReader reader = command.ExecuteReader();
    
    while (reader.Read())
    {
    list.Items.Add(String.Format("{0}", reader[0]));
    }
    
    }
    }
    }
    
    public static void Main(string[] args)
    {
    Application.Run(new MainForm());
    }
    
    private ListBox list;
    }
    А теперь вопросы:
    1) В случае с if (String.Format("{0}", connection.State) == "Open") все работает нормально, а вот если ввести плохое имя базы даже скомпилить нельзя до конца, как этого избежатьи заменить в случае с кривым адресом просто на месаг бокс типо "can't connect"

    2) Как обрабатывать сообщения от лист бокса, понимаю что это что-то типо сообщения от кнопки в с++, но в мсдн ничего разумного найти не смог

    3) Как обратиться к определенному элементу таблицы MSQL
    while (reader.Read())
    {
    list.Items.Add(String.Format("{0}", reader[0]));
    }
    добавляет их все в листбокс, а вот по клику в лист боксе мне нужно будет вывести MessageBox'ом все остальные поля для данного элемента таблицы.

    Если кто чем поможет, зарание спасибо
     
  2. NikSoft

    NikSoft Гость

    Репутация:
    0
    Хороший тон в программировании - ложить строку Connection в файл конфигураций
     
  3. Pasha

    Pasha Гость

    Репутация:
    0
    1a. Допечатка же срабатывает: connection.State == ConnectionState.Open.
    1b. Имя базы действительна надо вынести в конфиг, почитайте в любой книге про использование System.Configuration.
    1c. Почитайте в тож же книге про обработку исключений. Сразу станет понятно как показать MessageBox при ошибке соединения.

    2. Поставить обработчик на событие ListBox.SelectedIndexChanged Event. Но лучше воспользуйтесь средствами студии.

    3. Почитайте про работу с DataSet и Master/Details страницами.
     
  4. NikSoft

    NikSoft Гость

    Репутация:
    0
    Можно сделать, например, так

     
  5. NikSoft

    NikSoft Гость

    Репутация:
    0
    Для: Niceday
    Ты положил код выборки данных в конструктор формы( MainForm). Но конструктор формы предназначен для инициализации полей обьекта. Положи код выборки данных в метод
    Код:
    private void Form1_Load(object sender, EventArgs e)
    {
    ...
    }
     
  6. Niceday

    Niceday Гость

    Репутация:
    0
    Пришел я к одному выводу, книжка нужна, т.к. вопросы возникают и возникают, простые по шарпу не катят т.к. они тока про консольные приложения и формы рассказывают что и так понятно, а кто может подсказать где скачать хорошую кнужку по программированию на c# для msql где сама тема рассматривается от начала и до конца с примерами кода?
     
  7. NikSoft

    NikSoft Гость

    Репутация:
    0
Загрузка...

Поделиться этой страницей