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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2019, 20:32   #1
артем322
Пользователь
 
Регистрация: 28.11.2018
Сообщений: 10
По умолчанию подскажите в чем ошибка.не видит вторую таблицую. строка dataGridView_Types.Columns["id"].Visible = false;

Код:
namespace DataBase
{
    public partial class Form1 : Form
    {
        OleDbConnection connection;
        DataTable dt1, dt2;

        public Form1()
        {
            InitializeComponent();
            dt1 = new DataTable();
            dt2 = new DataTable();
            connection = new OleDbConnection(GetConnectionString("Mouses.accdb"));
            // Открытие соединения
            connection.Open();
            // Устанавливаем связи DataGridView c DataTable
            dataGridView_Marka.DataSource = dt1;
            dataGridView_Types.DataSource = dt2;
            // Заполняем данными dt1 
            InitMarks();
            InitGridView();
        }
        private void InitMarks()
        {
            OleDbCommand command1 = new OleDbCommand("SELECT * FROM marka", connection);
            OleDbDataAdapter adapter1 = new OleDbDataAdapter(command1);
            adapter1.Fill(dt1);
        }
        static private string GetConnectionString(string path)
        {
            return @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " + path + ";";
        }

        private void InitGridView()
        {
            dataGridView_Marka.Columns["id"].Visible = false;
            dataGridView_Marka.Columns["manufacturer"].HeaderText = "производитель";
            dataGridView_Marka.Columns["manufacturer"].Width = 100;
            dataGridView_Marka.Columns["marka"].HeaderText = "марка";
            dataGridView_Marka.Columns["marka"].Width = 400;
            dataGridView_Types.Columns["id"].Visible = false;
            dataGridView_Types.Columns["id_groups"].Visible = false;
            dataGridView_Types.Columns["types"].HeaderText = "тип";
            dataGridView_Types.Columns["types"].Width = 100;
            dataGridView_Types.Columns["wire"].HeaderText = "провод";
            dataGridView_Types.Columns["wire"].Width = 100;
            dataGridView_Types.Columns["cost"].HeaderText = "цена";
            dataGridView_Types.Columns["cost"].Width = 100;

        }

        private int GetIdMarka()
        {
            return int.Parse(dataGridView_Marka.SelectedRows[0].Cells["id"].Value.ToString());
        }
        private int GetIdTypes()
        {
            return int.Parse(dataGridView_Types.SelectedRows[0].Cells["id"].Value.ToString());
        }
        private void RefreshTypes()
        {
            OleDbCommand command2 = new OleDbCommand("SELECT * FROM types WHERE id_groups = " + GetIdTypes(), connection);
            OleDbDataAdapter adapter2 = new OleDbDataAdapter(command2);
            dt2.Clear();
            adapter2.Fill(dt2);
        }
        private void dataGridView_Marka_SelectionChanged(object sender, EventArgs e)
        {
            if (dataGridView_Marka.SelectedRows.Count <= 0) return;
            RefreshTypes();
        }

        

        private void dataGridView_Students_SelectionChanged(object sender, EventArgs e)
        {
            if (dataGridView_Types.SelectedRows.Count <= 0) return;

            DataGridViewRow row = dataGridView_Types.SelectedRows[0];

            textBox_type.Text = row.Cells["types"].Value.ToString();
            textBox_wire.Text = row.Cells["wire"].Value.ToString();
            textBox_cost.Text = row.Cells["cost"].Value.ToString();
        }
    }
}
артем322 вне форума Ответить с цитированием
Ответ


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