1) Создаем базу данных, например в MS Access
Таблица с именем students имеет 4 поля: id (PK, счетчик), fio (текстовый), regnomer (текстовый), vozrast (числовой).
2) Пуск – Настройка – Панель управления – Администрирование – Источники данных ODBC
3) Добавляем новый источник данных
4) Устанавливаем настройки: имя источника данных, в нашем случае, STUDS; полный путь к базе данных
5) Запускаем Microsoft Visual Studio 2008
File – New – Project
6) Добавляем на Toolbox – Data компоненты OdbcCommand, OdbcConnection и OdbcDataAdapter через контекстное меню Choose Items …
7) На закладке .NET Framework Components находим нужные компоненты и отмечаем их галочкой. Ok
8) Добавляем компонент odbcConnection1
9) odbcConnection1 - ConnectionString есть Dsn=STUDS
10) Добавляем компоненты odbcDataAdapter1, dataSet1, dataGridView1
odbcDataAdapter1.SelectCommand.Connection = odbcConnection1;
11) Устанавливаем следующие свойства для dataGridView1
dataGridView1.AllowUserToAddRows = false;
dataGridView1.AllowUserToDeleteRows = false;
dataGridView1.AllowUserToResizeRows = false;
dataGridView1.MultiSelect = false;
dataGridView1.ReadOnly = true;
dataGridView1.SelectionMode =
System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
dataGridView1.StandardTab = true;
12) Добавим 3 колонки в визуальную таблицу
13) Список колонок
// FIO
//
this.FIO.HeaderText = "ФИО";
this.FIO.Name = "FIO";
this.FIO.ReadOnly = true;
//
// REGNOMER
//
this.REGNOMER.HeaderText = "РегНомер";
this.REGNOMER.Name = "REGNOMER";
this.REGNOMER.ReadOnly = true;
//
// VOZRAST
//
this.VOZRAST.HeaderText = "Возраст";
this.VOZRAST.Name = "VOZRAST";
this.VOZRAST.ReadOnly = true;
14) Функция при нажатии на кнопку «Загрузить»
//Установка соединения для SelectCommand компонента odbcDataAdapter1
odbcDataAdapter1.SelectCommand.Connection = odbcConnection1;
//Если соединение открыто, то закрываем его
if (odbcConnection1.State == ConnectionState.Open)
{
odbcConnection1.Close();
}
//Открываем соединение
odbcConnection1.Open();
//Имя таблицы - выборки в dataSet1
string selectsql_name = "STU";
//Имя таблицы - выборки в dataSet1 должно быть уникально, поэтому удаляем, если такая нашлась.
int i;
for (i = 0; i <= dataSet1.Tables.Count - 1; i++)
{
if (dataSet1.Tables[i].TableName.ToString().ToUpper() == selectsql_name.ToUpper())
{
dataSet1.Tables.RemoveAt(i);
}
}
//Добавляем новую таблицу - выборку в dataSet1 с именем selectsql_name
dataSet1.Tables.Add(selectsql_name);
//sql запрос
string commandTextTemp = "select * from students ";
odbcDataAdapter1.SelectCommand.CommandText = commandTextTemp;
odbcDataAdapter1.TableMappings.Clear();
odbcDataAdapter1.TableMappings.Add("Table1", "Table2");
try
{
//Выполнение sql запроса и загрузка в таблицу - выборку
odbcDataAdapter1.Fill(dataSet1.Tables[selectsql_name]);
//Перегрузка таблицы в dataGridView1
int j;
int k;
string s;
dataGridView1.Rows.Clear();
i = 0;
//Просматриваем все записи в таблице - выборке
while (i <= dataSet1.Tables[selectsql_name].Rows.Count - 1)
{
//Добавляем новую строку в визуальную таблицу
dataGridView1.Rows.Add();
j = 0;
//Просматриваем колонки в таблице - выборке
while (j <= dataSet1.Tables[selectsql_name].Columns.Count - 1)
{
s = dataSet1.Tables[selectsql_name].Columns[j].ColumnName;
k = 0;
//Просматриваем колонки в визуальной таблице
while (k <= dataGridView1.ColumnCount - 1)
{
//Если имя колонки в таблице - выборке совпало с именем колонки в визуальной таблице, то
if (dataGridView1.Columns[k].Name.ToUpper() ==
s.ToUpper())
{
dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[s].Value = dataSet1.Tables[selectsql_name].Rows[i][s].ToString();
}
k++;
}
j++;
}
i++;
}
//Первая строка текущая
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows[0].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[1];
}
//Сортируем
if (dataGridView1.SortedColumn != null)
{
if (dataGridView1.SortOrder.ToString().ToUpper()[0] == 'A')
{
dataGridView1.Sort(dataGridView1.SortedColumn, ListSortDirection.Ascending);
};
if (dataGridView1.SortOrder.ToString().ToUpper()[0] == 'D')
{
dataGridView1.Sort(dataGridView1.SortedColumn, ListSortDirection.Descending);
};
}
//Первая строка текущая
if (dataGridView1.Rows.Count > 0)
{
dataGridView1.Rows[0].Selected = true;
dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[1];
}
}
catch
{
MessageBox.Show("Обнаружена ошибка при выполнении запроса!", "Внимание!",
MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
15) При нажатии на кнопку «Загрузить» появится следующее. Сортировка работает.
16) Далее ставим задачу добавления записи в таблицу.
Реализовывать это будем с помощью sql запросов.
Добавим три компонента TextBox
textBox1.MaxLength = 255; //фио
textBox1.MaxLength = 255; //регномер
textBox3.MaxLength = 3; //возраст
textBox3.Text = “0”;
17) Добавим 2 процедуры
private void textBox3_TextChanged(object sender, EventArgs e)
{
try
{
System.Convert.ToInt32(textBox3.Text.ToString());
}
catch
{
textBox3.Text = "0";
}
}
private void button2_Click(object sender, EventArgs e)
{
odbcSelectCommand1.CommandText =
"insert into students(fio, regnomer, vozrast) "+
"values('"+textBox1.Text.ToString()+"', "+
"'"+textBox2.Text.ToString()+"', "+
""+textBox3.Text.ToString()+") ";
odbcSelectCommand1.ExecuteNonQuery();
}
18) Результат
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.