Российская международная академия туризма
Опубликован: 09.09.2008 | Доступ: свободный | Студентов: 809 / 37 | Оценка: 4.33 / 4.33 | Длительность: 13:07:00
Лекция 10:

Формат XML для Smartdevice. Создание и управление объектами ADO.NET

< Лекция 9 || Лекция 10: 12 || Лекция 11 >

Шаг 3. Добавляем переменные в состав public class Form1 : System.Windows.Forms.Form

int i=0; // номер строки для вывода в textbox

Шаг 4. Создаем процедуру заполнения – очистки элементов просмотра XML – данных

Для кнопки "Заполнить" ("Очистить") пишем:

DataSet dataSet=new DataSet(); // создаем переменную dataSet
// добавляем таблицу в dataSet
DataTable dataTable=dataSet.Tables.Add("CardVISA");
// программно создаем структуру - добавляем столбцы
dataTable.Columns.Add("Сумма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Цель",System.Type.GetType("System.String"));
dataTable.Columns.Add("Фирма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Дата",System.Type.GetType("System.String"));
// для идентификации записей создаем поле с типом данных 
Int64dataTable.Columns.Add("ID",System.Type.GetType("System.Int64"));
// программируем объекты записей
object[] a1={"-17800","Salary","РМАТ", "07-02-2006","1"};
object[] a2={"300","Связь","МТС", "08-02-2006","2"};
object[] a3={"300","Связь","МТС", "09-02-2006","3"};
// программно заполняем таблицу, добавляя строки
dataTable.Rows.Add(a1);
dataTable.Rows.Add(a2);
dataTable.Rows.Add(a3);
// привязываем текстовые боксы с указанием i-й строки вывода
BindingContext[dataTable].Position=i;
// привязываем листбокс
listBox1.DataSource=dataTable;
listBox1.DisplayMember="Сумма";
listBox1.ValueMember="ID";
listBox2.DataSource=dataTable;
listBox2.DisplayMember="Цель";
listBox3.DataSource=dataTable;
listBox3.DisplayMember="Фирма";
listBox4.DataSource=dataTable;
listBox4.DisplayMember="Дата";
// привязываем датагрид
dataGrid1.DataSource=dataTable;
button2.Visible=false; // прячем кнопку "Заполнить"
button3.Visible=true; // показываем кнопку "Очистить"
}

Шаг 5. Создаем процедуру прокрутки записей на закладке "TextBox"

Для кнопки "Next" закладки "TextBox" пишем:

private void button4_Click(object sender, System.EventArgs e) {
// дублируем функцию кнопки "Заполнить"
DataSet dataSet=new DataSet();
DataTable dataTable=dataSet.Tables.Add("CardVISA");
dataTable.Columns.Add("Сумма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Цель",System.Type.GetType("System.String"));
dataTable.Columns.Add("Фирма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Дата",System.Type.GetType("System.String"));
dataTable.Columns.Add("ID",System.Type.GetType("System.Int64"));
object[] a1={"-17800","Salary","РМАТ", "07-02-2006","1"};
object[] a2={"300","Связь","МТС", "08-02-2006","2"};
object[] a3={"300","Связь","МТС", "09-02-2006","3"};
dataTable.Rows.Add(a1);
dataTable.Rows.Add(a2);
dataTable.Rows.Add(a3);
// крутим i
i=i+1;
if (i = =3)
i=0;
BindingContext[dataTable].Position=i;
// чистим текстбоксы
foreach (Control t in this.tabPage1.Controls) { 
if (t is TextBox) { 
		t.DataBindings.Clear();
		t.Text="";}
}
// привязываем текстовые боксы
textBox1.DataBindings.Add("Text",dataTable,"Сумма");
textBox2.DataBindings.Add("Text",dataTable,"Цель");
textBox3.DataBindings.Add("Text",dataTable,"Фирма");
textBox4.DataBindings.Add("Text",dataTable,"Дата");
textBox5.DataBindings.Add("Text",dataTable,"ID");
}

Шаг 6. Создаем процедуру вывода номера записи для закладки "ListBox"

Для кнопки "Ключ ID" пишем:

private void button5_Click(object sender, System.EventArgs e) {
MessageBox.Show(String.Format("{0}",listBox1.SelectedValue),"Ключ ID");
}

Шаг 7. Создаем процедуру очистки элементов просмотра данных

Для кнопки "Очистить" пишем:

private void button3_Click(object sender, System.EventArgs e) {
foreach (Control t in this.tabPage1.Controls) { // чистим текстбоксы
 	if (t is TextBox)  {
t.DataBindings.Clear();
		t.Text="";}
	}
// чистим листбоксы
listBox1.DataSource=dataTable;
listBox1.Items.Clear();
listBox2.DataSource=dataTable;
listBox2.Items.Clear();
listBox3.DataSource=dataTable;
listBox3.Items.Clear();
listBox4.DataSource=dataTable;
listBox4.Items.Clear();
// чистим грид
dataGrid1.DataSource=dataTable;
dataGrid1.Text="";
button2.Visible=true; // показываем кнопку "Заполнить"
button3.Visible=false; // прячем кнопку "Очистить"
}

Шаг 8. Создаем процедуру сохранения таблицы в формате XML

Для кнопки "Сохранить" пишем:

private void button6_Click(object sender, System.EventArgs e) {
FileStream fin_out; // задаем поток
try  {// если файл не существует
fin_out=new FileStream("dataSet.xml",FileMode.OpenOrCreate);
fin_out.Close();
	}
catch(IOException exc) 	{
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
StreamWriter xml_out;
try {
xml_out=new StreamWriter("dataSet.xml");
}
catch(IOException exc) {
MessageBox.Show ("Невозможно открыть файл.","Ошибка");
return;}
// форматируем xml
XmlTextWriter xmlWriter=new XmlTextWriter(xml_out);
// способ форматирования
xmlWriter.Formatting=Formatting.Indented;
xmlWriter.Indentation=3; 
DataSet dataSet=new DataSet();
DataTable dataTable=dataSet.Tables.Add("CardVISA");
dataTable.Columns.Add("Сумма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Цель",System.Type.GetType("System.String"));
dataTable.Columns.Add("Фирма",System.Type.GetType("System.String"));
dataTable.Columns.Add("Дата",System.Type.GetType("System.String"));
dataTable.Columns.Add("ID",System.Type.GetType("System.Int64"));
object[] a1={"-17800","Salary","РМАТ", "07-02-2006","1"};
object[] a2={"300","Связь","МТС", "08-02-2006","2"};
object[] a3={"300","Связь","МТС", "09-02-2006","3"};
dataTable.Rows.Add(a1);
dataTable.Rows.Add(a2);
dataTable.Rows.Add(a3);
dataSet.WriteXml(xmlWriter,XmlWriteMode.IgnoreSchema);
xmlWriter.Close();
MessageBox.Show("Файл записан в формате XML","Сохранение");
}

Шаг 9. Создаем процедуру выхода из программы

Для кнопки "Выход" пишем:

private void button1_Click(object sender, System.EventArgs e) {
Application.Exit();
}
< Лекция 9 || Лекция 10: 12 || Лекция 11 >