Дипломная работа: Автоматизация процесса контроля знаний учащихся ГОУ СОШ №17

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
95
textBox9->Visible = true; textBox10->Visible = true; textBox11->Visible =
true;
button3->Visible = true; button4->Visible = true; button5->Visible = true;
dataGridView1->Visible = true;
return;
}
public: System::Void button4_Click(System::Object^ sender, System::EventArgs^
e) {
//Сохранение
try
{
if (textBox12->Text == "")
{
MessageBox::Show("Не указан название предмета");
return;
}
else
{
if (textBox1->Text == "")
{
MessageBox::Show("Не указан название теста");
return;
}
}
96
auto Подключение = gcnew OleDb::OleDbConnection(
"Data Source=\"Database2003.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
Подключение->Open();
auto Команда = gcnew OleDb::OleDbCommand("SELECT * From *",
Подключение);
//Создаем объект класса Adapter и выполняем SQL-запрос
auto Адаптер = gcnew OleDb::OleDbDataAdapter(Команда);
//Создаем объект класса DataSet
auto НаборДанных = gcnew DataSet();
// Содержимое DataSet в виде строки XML для отладки:
String^ СтрокаXML = НаборДанных->GetXml();
//Сохранение в базе
String^ НазваниеТеста = textBox12->Text + " Тест " + textBox1-
>Text;
//Добавляет в таблицу Предмета колонку с названием тест
Команда->CommandText = (String::Format("ALTER TABLE [{0}]
ADD COLUMN [{1}] TEXT(100)", textBox12->Text, НазваниеТеста));
Команда->ExecuteNonQuery();
//Создаем таблицу теста в базе
String^ ТекстКоманды;
for (int i = 2; i < Convert::ToInt32(label4->Text); i++)
{
ТекстКоманды += String::Format(", [{0}] TEXT", i);
}
97
Команда->CommandText = (String::Format("CREATE TABLE [{0}]
([1] TEXT"+ ТекстКоманды + ")", НазваниеТеста));
Команда->ExecuteNonQuery();
//Вносим данные в таблицу теста в базе по строчно
String^ СтрокаТаблицы;
int ЧислоКолонок = dataGridView1->ColumnCount;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < ЧислоКолонок; j++) {
СтрокаТаблицы += String::Format(" '{0}',",
dataGridView1[j, i]->Value);
}
СтрокаТаблицы = СтрокаТаблицы->Substring(0,
СтрокаТаблицы->Length - 1);
Команда->CommandText = (String::Format("INSERT INTO
[{0}] VALUES ({1})", НазваниеТеста, СтрокаТаблицы));
Команда->ExecuteNonQuery();
СтрокаТаблицы = "";
}
Подключение->Close();
MessageBox::Show("Тест успешно сохранен в базе");
label4->Text = Convert::ToString(1);
dataGridView1->ColumnCount = 0;
textBox1->Text = ""; textBox2->Clear(); textBox3->Clear(); textBox4-
>Clear(); textBox5->Clear();
98
textBox6->Clear(); textBox7->Clear(); textBox8->Clear(); textBox9-
>Clear(); textBox10->Clear();
textBox11->Clear(); textBox12->Clear();
}
catch (Exception ^ Ситуация)
{
// Отчет о других ошибках:
MessageBox::Show(Ситуация->Message, "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Exclamation);
}
}
};
}
Листинг 3 экранной формы:
#pragma endregion
String^ НазваниеТеста;
int КоличествоКолонок;
int НомерВопроса = 2;
DataSet^ НаборДанных;
OleDb::OleDbConnection^ Подключение;
OleDb::OleDbCommand^ Команда;
OleDb::OleDbDataAdapter^ Адаптер;
String^ НазваниеТаблиц;
int Пробел;
99
public: System::Void MyForm2_Load(System::Object^ sender,
System::EventArgs^ e) {
Подключение = gcnew OleDb::OleDbConnection(
"Data Source=\"Database2003.mdb\";User " +
"ID=Admin;Provider=\"Microsoft.Jet.OLEDB.4.0\";");
Подключение->Open();
for each (DataRow ^ dataRow in Подключение->GetSchema("Tables")-
>Rows)
{
if (Convert::ToString(dataRow->ItemArray[3]) == "TABLE")
{
if (Convert::ToString(dataRow->ItemArray[2]) !=
"Пользователи")
{
НазваниеТаблиц = Convert::ToString(dataRow-
>ItemArray[2]);
Пробел = НазваниеТаблиц->IndexOf(" ");
if (Пробел != -1) {
comboBox1->Items-
>Add(Convert::ToString(dataRow->ItemArray[2]));
}
}
}
}
Подключение->Close();
Источник: https://baza.diplomsite.ru/previewfile/2096