powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView
3 сообщений из 3, страница 1 из 1
DataGridView
    #38031026
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток!

Надо срочно сделать простое приложение на C#, а я практически с ним не работал, поэтому хочу спросить вот что:
1. Если я запросом выберу данные из разных таблиц (связанных по ключу), то как сделать, чтобы DataGridView смог их сохранить - на данный момент сваливается на эксепшэне, что такая фича не поддерживается. Чуствую, что задача банальная, перерыл весь инет - нашел какие-то визарды, какие-то куски исходников... но внятного ответа так и не нашел -не надо визардов - надо просто несколько строк кода и все...
2. Если есть две таблицы - в одной - к примеру город, в другой - некая область - Минская, Витебская... как можно организовать DataGridView, чтобы в колонку для города можно было просто вводить город, а в колонке, которая отображает область - чтобы было нечто похожее на lookupcombobox или combobox... - из списка выбрали название, а в таблицу попал соответствующий id
3. а самое лучшее - как заставить просто DataGridview данные отображать и не более - чтоб не было никакой автоматической вставки, редактирования - я все сделаю кнопками и запросами, а то чую - погрязну в богатых возможностях грида, пока их раскопаю, а надо все сделать срочно!

вот что нарыл (когда-то что-то такое делал для Compact FrameWork 3.5 - работает там - но не то это - не уверен, что такие же строчки кода заработают и в 4 фрэймворке, а на пробы и поиск решения уже нет времени!)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
  private void FormCities_Load(object sender, EventArgs e)
        {
            cmd.CommandText = "SELECT c.Id,c.Name,d.Name FROM Cities AS c LEFT JOIN Districts AS d ON d.Id = c.District_Id;";
            dsTasks.DataSetName = "LocalDataBase";
            dtTable = new DataTable();
            dtTable.TableName = "Cities";
            dsTasks.Tables.Add(dtTable);
            MDBConn.Open();
            da = new OleDbDataAdapter(this.cmd);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(da);
            
            da.UpdateCommand = builder.GetUpdateCommand();
            da.InsertCommand = builder.GetInsertCommand();
            da.DeleteCommand = builder.GetDeleteCommand();
             
            int nRows = da.Fill(this.dsTasks, "Cities");
            dataGridView1.DataSource = dsTasks.Tables[0];
            FormMain.SetupDataGridView(dataGridView1);
            dataGridView1.RowHeadersVisible = true;
            dataGridView1.Columns[0].HeaderText = "Id";
            dataGridView1.Columns[0].ReadOnly = true;
            dataGridView1.Columns[1].HeaderText = "Город";
            dataGridView1.Columns[1].DefaultCellStyle.Font = FormMain.f1;
            dataGridView1.Columns[2].HeaderText = "Область";
            dataGridView1.Columns[2].DefaultCellStyle.Font = FormMain.f1;
            dataGridView1.Columns[0].Width = this.ClientSize.Width * 20 / 100;
            dataGridView1.Columns[1].Width = this.ClientSize.Width * 30 / 100;
            dataGridView1.Columns[2].Width = this.ClientSize.Width * 50 / 100;
        }



заранее благодарен! Если что, то БД - обычный Access (mdb), работа с БД - через ADO.net
...
Рейтинг: 0 / 0
DataGridView
    #38031145
фиганыч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,

1. В топку - религия так делать не позволяет.
2. Есть колонки в DataGridView с типом DataGridViewComboBoxColumn - дальше сам.
3. У Вас уже есть главное:
Код: c#
1.
dataGridView1.DataSource = dsTasks.Tables[0];


чтобы запретить вставку/редактирование удаление достаточно посмотреть в свойства данного компонента:
Код: c#
1.
2.
3.
4.
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
// ну и до кучи
dataGridView1.ReadOnly = true;
...
Рейтинг: 0 / 0
DataGridView
    #38031464
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
фиганычGaladriel75,

1. В топку - религия так делать не позволяет.
2. Есть колонки в DataGridView с типом DataGridViewComboBoxColumn - дальше сам.
3. У Вас уже есть главное:
Код: c#
1.
dataGridView1.DataSource = dsTasks.Tables[0];


чтобы запретить вставку/редактирование удаление достаточно посмотреть в свойства данного компонента:
Код: c#
1.
2.
3.
4.
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
// ну и до кучи
dataGridView1.ReadOnly = true;



Ок! спасибо! так и сделаю - пойду по пути наименьшего сопротивления. Кстати религия ADO первое делать позволяет - на Delphi 7 - за милую душу связанные таблицы редактируются :). По поводу второго - вот когда-то же делал такое, а куда проект затерял, уже и не помню - хаос во всем, в том числе и на винчестере... :)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]