Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение таблиц из БД, нужна помощь 
:(
    Опции темы
1901Maxim
Дата 30.6.2007, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.6.2007

Репутация: нет
Всего: нет



Подскажите, можно ли выбрать таблицы из БД, когда есть подключение, но заранее не известно какие таблицы там находятся, если да, то как? 
PM MAIL   Вверх
thomas
Дата 1.7.2007, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



1901Maxim, 
На форме кнопка и листбокс
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace Oef09_db_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnShow_Click(object sender, EventArgs e)
        {
            string constr = @"provider=Microsoft.Jet.oledb.4.0;" +
                            @"data source=D:\vti\Margo\nwind.mdb";
            OleDbConnection con = new OleDbConnection(constr);
            con.Open();
            
            DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                new object[]{null,null,null,"table"}); //view=query
            //katolog, schema, kategorie, sm nizhe
            //mozhet byt "table", "view", "system table", 
            foreach (DataRow dr in dt.Rows)
            {
                lstbSchema.Items.Add("name:"+dr["table_name"].ToString());
                lstbSchema.Items.Add("catalog:"+dr["table_catalog"].ToString());
                lstbSchema.Items.Add("schema:"+dr["table_schema"].ToString());
                lstbSchema.Items.Add("guid:"+dr["table_guid"].ToString());
                lstbSchema.Items.Add("type:"+dr["table_type"].ToString());
                lstbSchema.Items.Add("propid:"+dr["table_propid"].ToString());
                lstbSchema.Items.Add("description:"+dr["description"].ToString());
                lstbSchema.Items.Add("created:"+dr["date_created"].ToString());
                lstbSchema.Items.Add("modified:"+dr["date_modified"].ToString());
                MessageBox.Show("volgende");
                lstbSchema.Items.Clear();
            }
            con.Close();
        }
    }
}


В листбокс последовательно выводятся данные на каждую таблицу БД.

Что бы посмотреть какие поля в таблицах и что за данные там хранятся
пишем так:
Код

private void btnShow_Click(object sender, EventArgs e)
        {
            string tblname;
            string sql;
            string constr = @"provider=Microsoft.Jet.oledb.4.0;" +
                            @"data source=D:\vti\Margo\nwind.mdb";

            OleDbConnection con = new OleDbConnection(constr);
            con.Open();

            DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                               new object[] { null, null, null, "table" }); //view=query
            //katolog, schema, kategorie, sm nizhe
            //mozhet byt "table", "view", "system table", 

            DataSet ds = new DataSet();

            foreach (DataRow dr in dt.Rows)
            {
                lstbSchema.Items.Clear();
                tblname = dr["Table_name"].ToString();
                sql = "select * from [" + tblname+"]"; // обратить внимание на нотацию, иначе SQL не поймет
                OleDbDataAdapter da = new OleDbDataAdapter(sql, con);
                da.Fill(ds, tblname);
               
                    foreach (DataColumn dc in ds.Tables[tblname].Columns)
                    {
                        lstbSchema.Items.Add(dc.ToString() +
                            ", " + dc.ColumnName +
                            ", " + dc.DataType +
                            ", " + dc.Caption +
                            ", " + dc.DefaultValue + "!");
                    }
                    MessageBox.Show("volgende");
            }
            con.Close();
        }


Это сообщение отредактировал(а) thomas - 1.7.2007, 12:27


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
1901Maxim
Дата 1.7.2007, 23:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 30.6.2007

Репутация: нет
Всего: нет



thomas,  спасибо, помогло.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0498 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.