PDA

View Full Version : سوال: بدست اوردن لیست جداول



enekas
سه شنبه 24 مرداد 1391, 13:36 عصر
سلام
من یک بانک اطلاعاتی دارم به نام Test
در بانک اطلاعاتی من چند جدول وجود داره مثلا t1 , t2 , t3
در هر جدول id, name, job وجود داره
من میخوام یک کامبو باکس بذارم در ان ان نام جدول های بانک اطلاعاتی را نمایش بده (t1 , t2 t,t3)
که کاربر هرکدام را که انتخاب کرد و دکمه باتن را زد اطلاعات ان جدول در گرید ویو نمایش داده شود
اما نمیدانم که چطوری نام جدول ها را داخل کمبوباکس بذارم
.
ضمن اینکه ممکن است جدول ها کم یا زیاد شوند
میخوام در کمبوباکس بطور خودکار نام تمام جدول ها باشه
.
ممنون از عزیزان

Farshid007
سه شنبه 24 مرداد 1391, 13:50 عصر
اول یه Binding Source اضافه کن
بعد به اون از پروپر تیس سورس بده (دیتا بیس مورد نظرت رو)
بعد به این شکل عمل کن:
for (int i = 0; i < databaseDataSet.Tables.Count; i++)
{
comboBox1.Items.Add(databaseDataSet.Tables[i].TableName);
}

enekas
سه شنبه 24 مرداد 1391, 13:51 عصر
احتمال زیاد طراحی دیتابیس شما اشتباه است. به خاطر اینکه میگید تعداد جداول کم و زیاد میشه.

توضیحی در مورد دیتابیستون همراه با جداول و فیلدهاشون قرار بدید.

ببخشید اما اشتباه متوجه شدید
منظورم اینه که ممکنه مثلا من یک جدول دیکه هم مثلاt4 اضافه کنم
میخوام بصورت خودکار اونم بیاد در کمبوباکس

Farshid007
سه شنبه 24 مرداد 1391, 13:54 عصر
واسه بدست اوردن ستون های یه جدول هم:
for (int i = 0; i < databaseDataSet.Tables[comboBox1.SelectedItem.ToString()].Columns.Count; i++)
{
comboBox2.Items.Add(databaseDataSet.Tables[comboBox1.SelectedItem.ToString()].Columns[i].ColumnName);
}

malihehshajari
یک شنبه 16 مهر 1391, 11:29 صبح
میشه بگین چجوری میشه بدون استفاده از Binding Source لیست جداول رو پیدا کرد
من میخوام از طریق کد نویسی این کار رو انجام بدم
ممنون

morteza271
یک شنبه 16 مهر 1391, 11:45 صبح
من میخوام از طریق کد نویسی این کار رو انجام بدم
کوئری های زیادی برای اینکار هست!
مثلا یکیش اینه:
SELECT *
FROM sys.Tables

malihehshajari
یک شنبه 16 مهر 1391, 11:57 صبح
کوئری های زیادی برای اینکار هست!
مثلا یکیش اینه:
SELECT *
FROM sys.Tables

من این کار رو کردم
ولی ارور داد
Invalid object name 'sys.tables'.
کدی که نوشتم اینه:
DataTable dt601 = connection.gettable1("select * from sys.tables");
comboBox2.DataSource = dt601;

comboBox2.DisplayMember = dt601.Columns[0].ToString();

comboBox2.ValueMember = dt601.Columns[0].ToString();

morteza271
یک شنبه 16 مهر 1391, 12:02 عصر
اون خطا فک کنم به خاطر نسخه sql server شماست.
این رو امتحان کنید :
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES

malihehshajari
یک شنبه 16 مهر 1391, 13:04 عصر
اون خطا فک کنم به خاطر نسخه sql server شماست.
این رو امتحان کنید :
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES

این کد کار میکنه ولی علاوه بر اسم جداولم اسم همه کوئری ها رو هم میاره؟؟؟؟؟

morteza271
یک شنبه 16 مهر 1391, 13:19 عصر
یعنی چی اسم همه کوئری ها رو؟؟؟
منظورتون چیه؟برای من که فقط اسم جداول رو میاره!!!!!!!!

malihehshajari
یک شنبه 16 مهر 1391, 13:23 عصر
یعنی چی اسم همه کوئری ها رو؟؟؟
منظورتون چیه؟برای من که فقط اسم جداول رو میاره!!!!!!!!

خب یعنی هر چی views هم که ساختم برام لیست میکنه:متعجب:

morteza271
یک شنبه 16 مهر 1391, 13:28 عصر
آره واسه منم همینطوری شد وقتی VIEW ساختم.
اینطوری بنویسید :
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE (TABLE_TYPE = 'BASE TABLE')