Проблема в следующем. Ни как не соображу как вывести данные из двух таблиц одной БД в листБох на форме?
Вывод данных из одной без проблем.
- Код: Выделить всё
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
# region declaration
private OleDbConnection con = new OleDbConnection();
private OleDbCommand cmd = new OleDbCommand();
private OleDbDataAdapter da = new OleDbDataAdapter();
private DataSet ds = new DataSet();
#endregion
private void btnShow_Click(object sender, EventArgs e)
{
int lyn = 0;
string tekst = "";
con.ConnectionString = "provider=Microsoft.Jet.oledb.4.0;" +
@"data source=D:\vti\Margo\nwind.mdb;";
// ----? ? ? ---- ! ! ! ---- ? ? ? ----
// здесь пока могу только выбрать одну или вторую таблицу
cmd.CommandText = "select * from categories";
//cmd.CommandText = "select * from employees";
cmd.Connection = con;
da = new OleDbDataAdapter(cmd);
try
{
da.Fill(ds, "kat"); // "кат" имя таблицы, не в БД, а здесь в ДС.
foreach (DataTable tb in ds.Tables) // для всех таблиц в DataSet
foreach (DataRow ry in tb.Rows) //для всех строк в таблице
{
tekst = "";
for (int i = 0; i < tb.Columns.Count; i++)
{
tekst += ry[i].ToString() + " --- ";
}
// отображаем данные из таблицы в listBox
listBox1.Items.Add(tekst);
}
}
catch (Exception ex)
{
MessageBox.Show("Fout : " + ex.Message);
}
finally
{
con.Close();
}
}
}
Как мне правильно прописать команды что бы вывести данные в листБокс из одной таблицы а ниже из другой.
Препод на уроке сказал что это возможно и показал результат, а вот как это синтаксически прописать не показал. Вот и ищу.
Я так понимаю что вполне достаточно иметь одно соединение с БД, один DataSet. А вот на счет DataAdapter и ОleDbCommand сомневаюсь.
Хотя по идее DataAdapter вполне может работать с многими таблица ми из БД.
Конечно это учебный пример. Но важно узнать сам принцип.
ЗЫ и код на C# но это в принципе не принципиально, на VB практически тоже самое.