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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2013, 16:32   #11
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

Использовал DataGridView. возникла проблема с чтением и записью данных из бд в DataGridView.
столбцы DataGridView: фио, а остальные просто цифры (1,2,...31). это как бы число в месяце. сама таблица состоит из оценок. при нажатии на кнопку сохранить в бд должны записываться данные из DataGridView. таблица в бд состоит из: ФИО, дата, предмет, оценка. для заполнения даты добавил 2 комбобокса (месяц и год, число определяется из столбца в DataGridView)
допустим изначально таблица в бд пустая. запускаем проект, заполняем DataGridView. теперь каким образом сохранить внесенные данные в БД?
alex(21) вне форума Ответить с цитированием
Старый 18.11.2013, 08:51   #12
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

с большим трудом разобрался. только в бд заносятся все данные не зависимо от того заполнена ячейка или нет. заполняю бд следующим образом:
Код:
for (int j = 0; j < dataGridView1.RowCount-1; j++)
            {
                int m = 0;
                if (comboBox1.SelectedIndex == 0 || comboBox1.SelectedIndex == 2 || comboBox1.SelectedIndex == 4
 || comboBox1.SelectedIndex == 5 || comboBox1.SelectedIndex == 7 || comboBox1.SelectedIndex == 9)
                {
                    m = 30;
                }
                else m = 31;
                for (int i = 1; i <= m; i++)
                {
                    cmd.CommandText = "insert into Успеваемость(ФИО, Дата, Предмет, Оценка) values('" 
+ dataGridView1.Rows[j].Cells[0].Value + "', '" + dataGridView1.Columns.IndexOf(dataGridView1.Columns[i]) + "." +
 comboBox1.Items[comboBox1.SelectedIndex] + "." + comboBox2.Items[comboBox2.SelectedIndex] + "', '" + Form2.predmet + "', '" + 
dataGridView1.Rows[j].Cells[i].Value + "');";
                    cmd.ExecuteNonQuery();
                }
            }
            transaction.Commit();
как сделать так, что бы в бд вносились только те ячейки в которые я внес данные?

Последний раз редактировалось Stilet; 18.11.2013 в 12:05.
alex(21) вне форума Ответить с цитированием
Старый 18.11.2013, 12:15   #13
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 
string q,w;
if(dataGridView1.Rows[j].Cells[0].Value!=""){
 if(q!='') q+=","; q+='ФИО'; 
 if(q!="") q+="," w+="'"+dataGridView1.Rows[j].Cells[0].Value+"'";
}

if(dataGridView1.Rows[j].Cells[0].Value!=""){
 if(q!='') q+=","; q+='Дата'; 
 if(q!="") q+="," w+="'"+dataGridView1.Columns.IndexOf(dataGridView1.Columns[i]) + "." +
 comboBox1.Items[comboBox1.SelectedIndex] + "." + 
 comboBox2.Items[comboBox2.SelectedIndex]+"'";
}

if(dataGridView1.Rows[j].Cells[0].Value!=""){
 if(q!='') q+=","; q+='Предмет'; 
 if(q!="") q+="," w+="'"+Form2.predmet+"'";
}

if(dataGridView1.Rows[j].Cells[0].Value!=""){
 if(q!='') q+=","; q+='Оценка'; 
 if(q!="") q+="," w+="'"+dataGridView1.Rows[j].Cells[i].Value+"'";
}

cmd.CommandText = "insert into Успеваемость("+q+") values(" + w + ");";
Идея понятна?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2013, 13:29   #14
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

Цитата:
Идея понятна?
более чем. спасибо.
наверное надоел уже своими вопросами, но есть еще проблема. у меня в comboBox1 хранятся названия месяцев (Сентябрь, Октябрь....) используя sql команду insert
Код:
... + dataGridView1.Columns.IndexOf(dataGridView1.Columns[i]) + "." + comboBox1.Items[comboBox1.SelectedIndex] +
 "." + comboBox2.Items[comboBox2.SelectedIndex] +...
добавить запись в бд прокатило, а с delete не получается
Код:
...дата=#" + comboBox1.Items[comboBox1.SelectedIndex] + "/" + dataGridView1.Columns.IndexOf(dataGridView1.Columns[i]) + 
"/" + comboBox2.Items[comboBox2.SelectedIndex] + "#...
как то можно превратить название месяца в число, чтобы программа не ругалась?
alex(21) вне форума Ответить с цитированием
Старый 21.11.2013, 12:53   #15
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию

Со всем предыдущим разобрался. Остался последний вопрос. Помогите пожалуйста его решить. Сейчас нужно загрузить данные из БД в dataGridView. Создал событие, в котором при загрузке формы первый столбец dataGridView заполняется фамилиями. далее для загрузки оценок создал новую функцию которая должна загружать данные из БД в dataGridView. Предварительно все нужные данные считал в массивы. Пытался загрузить следующим образом:
Код:
for (int j = 0; j < dataGridView1.RowCount; j++)
            {
                for (int q = 0; q < i; q++)
                {
                    dataGridView1.Rows[j].Cells[q+1].Value = ocenka[q];
                }
            }
Но так определяется только последняя незаполненная фамилиями строка и в нее заносятся оценки. как обратиться к первой строке элемента dataGridView?
alex(21) вне форума Ответить с цитированием
Старый 21.11.2013, 14:35   #16
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

насколько я помню dataGridView можно настроить на считку из набора данных аки DBGrid в Делфи. почему бы тебе этим не воспользоваться? Кажись это свойство DataBinding
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Си шарп ilyagovsa Помощь студентам 4 04.08.2013 19:01
Матрица Си шарп N_P_A C# (си шарп) 0 29.04.2013 00:38
c шарп dinobot C# (си шарп) 3 01.02.2013 11:49
Работа со строками в с шарп. Alex_sim Общие вопросы .NET 13 23.04.2010 22:46
две задачи на СИ шарп логарифм Общие вопросы C/C++ 4 12.06.2009 14:48