Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.117.70.132] |
|
Сообщ.
#1
,
|
|
|
Учусь работать с базой данных Access через ADO.NET. Попробовал поработать с помощью мастеров - не понравилось, очень много непонятного кода, если где-то будет ошибка, то мне разобраться будет трудно. Без помощи мастеров удалось связать две таблицы, теперь пытаюсь сделать добавление и удаление сразу нескольких строк в таблице:
Работа с данными в таблице Учусь работать с базой данных Access через ADO.NET. Попробовал поработать с помощью мастеров - не понравилось, очень много непонятного кода, если где-то будет ошибка, то мне разобраться будет трудно. Без помощи мастеров удалось связать две таблицы, теперь пытаюсь сделать добавление и удаление сразу нескольких строк в таблице: namespace ContactsTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private OleDbConnection cn; private DataSet ds = new DataSet(); private BindingSource bsMain = new BindingSource(); private BindingSource bsChild = new BindingSource(); private OleDbDataAdapter daContact; private OleDbDataAdapter daPhone; private OleDbCommand cmd; private void DBcon(String DBname) { cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\\\" + DBname); try { cn.Open(); } catch { MessageBox.Show("Ошибка соединения с базой данных " + "\"" + DBname + "\"", "Ошибка подключения к базе", MessageBoxButtons.OK, MessageBoxIcon.Error); Application.Exit(); } } private void FillTables() { daContact = new OleDbDataAdapter("SELECT *FROM tblContact", cn); ds.Tables.Add(); daContact.Fill(ds.Tables[0]); daPhone = new OleDbDataAdapter("SELECT *FROM tblPhone", cn); ds.Tables.Add(); daPhone.Fill(ds.Tables[1]); DataRelation ContactPhoneRel = new DataRelation("RelContactPhone", ds.Tables[0].Columns[0], ds.Tables[1].Columns[1]); ds.Relations.Add(ContactPhoneRel); dataGridView1.DataSource = bsMain; dataGridView2.DataSource = bsChild; bsMain.DataSource = ds; bsMain.DataMember = ds.Tables[0].TableName; bsChild.DataSource = bsMain; bsChild.DataMember = ds.Relations[0].RelationName; } private void daContactsIns() { cmd = new OleDbCommand("INSERT INTO tblContact(Famil) VALUES(?)", cn); OleDbParameter p = new OleDbParameter("@Famil", OleDbType.Char); p.SourceColumn = "Famil"; p.SourceVersion = DataRowVersion.Original; cmd.Parameters.Add(p); daContact.InsertCommand = cmd; } private void daContactsDel() { cmd = new OleDbCommand("DELETE FROM tblContact WHERE ID = ?", cn); OleDbParameter p = new OleDbParameter("@ID", OleDbType.BigInt); p.SourceColumn = "ID"; p.SourceVersion = DataRowVersion.Current; cmd.Parameters.Add(p); daContact.DeleteCommand = cmd; } private void Form1_Load(object sender, EventArgs e) { { DBcon("Contacts.mdb"); FillTables(); daContactsIns(); daContactsDel(); } } private void btnSave_Click(object sender, EventArgs e) { daContact.Update(ds.Tables[0]); } private void btnRefresh_Click(object sender, EventArgs e) { //dataGridView1.Refresh(); ds.Tables[1].Clear(); ds.Tables[0].Clear(); ds.Relations.Clear(); FillTables(); } } } Прикреплённый файлContactsForum.zip (33,38 Кбайт, скачиваний: 486) |