PDA

View Full Version : پیدا کردن نام های datatable های موجود در یک dataset و ذخیره آن در combobox



anooshiran
یک شنبه 21 بهمن 1386, 11:33 صبح
سلام دوستان
من می خواهم table های خاصی را از DataBase پیدا کرده و نام های آن را در یک combobox یا datagridview ذخیره کنم و هر کدام را که خواستم انتخاب کنم
با تشکر

ghafoori
یک شنبه 21 بهمن 1386, 15:43 عصر
دوست عزیز با یک همچین کدی


For Each t As DataTable In my_dataset.Tables
Me.ComboBox1.Items.Add(t.TableName)
Next

anooshiran
یک شنبه 21 بهمن 1386, 19:28 عصر
با عرض تشکر
اگر امکان دارد برایم توضیح دهید :
من چند دیتا بیس دارم و می خواهم هرکدام از دیتابیس ها را جستجو کنم تا نام فایل ها را پیدا کنم
در ضمن میخواهم فایل هایی را در کمبو باکس بریزک که با مثلا BB شروع می شود.
با تشکر

ghafoori
یک شنبه 21 بهمن 1386, 21:50 عصر
می توانید برای هر دیتابیس یک حلقه مثل کد بالا در نظر بگیری و ان را جستجو کنی
برای سوال دوم کافی است یک شرط اضافه کنی مثلا این


Dim my_dataset As DataSet
For Each t As DataTable In my_dataset.Tables
If t.TableName.Substring(0, 2) = "bb" Then
Me.ComboBox1.Items.Add(t.TableName)
End If
Next

anooshiran
دوشنبه 22 بهمن 1386, 15:22 عصر
با سلام آقای غفوری
من کد هایی را که نوشته ای در برنامه گذاشتم ولی مشکل این است که این پیام خطا را می دهد
NullReferencesException Was Unhandled
در ضمن اسم database من BasisInfo است و می خواهم تمام table های را که با "'00-00" شروع می شود را در combobox بریزم.
اگر برایتان زحمتی نیست لطفا کد کامل آن را با ذکر نام Database من بنویسید.

anooshiran
سه شنبه 23 بهمن 1386, 21:55 عصر
سلام به همه دوستان
هنوز نتوانستم جوابی برای مشکلم پیدا کنم. منتظر راهنماییی دوستان هستم

ghafoori
چهارشنبه 24 بهمن 1386, 07:13 صبح
دوست عزیز شما باید بجای my_dataset نام دیتاست خود را قرار بدهید کدی که من نوشتم قطعا خطا می دهد چون در my_dataset جدولی وجود ندارد اگر این کار را انجام دادید بگویید دقیقا در چه خطی این خطا را میدهد و ان خط را هم این جا بنویسید

anooshiran
چهارشنبه 24 بهمن 1386, 11:45 صبح
سلا آقای غفوری
شاید من نتوانسته ام منظور خود را شفاف بیان کنم.
من یک database را با کد ایجاد می کنم و همچنین table هایی را با کد در درون این database ایجاد می نمایم.
حال در قسمتی از برنامه نیاز دارم کهTable جدیدی ایجاد کنم و برای نام گذاری این Table نیاز دارم که نام Table های موجود در databse را خوانده و در درن array یا combobox یا هر شی مشابه ای بریزم.و با توجه به نام ها آنها نام table جدید را انتخاب کنم.
بحث اصلا بر سر dataset نیست . من اشتیاها به جای database نوشته بودم dataset
با تشکر
انوش

__H2__
چهارشنبه 24 بهمن 1386, 13:56 عصر
سلام
با اجازه جناب غفوری ...
در مورد dataset که کد آقای غفوری است، برای database هم میتوانید از کد زیر استفاده کنید.
کد زیر گمانم ساده ترین راه برای انجام عمل فوق باشد.


Me.ComboBox1.DisplayMember = "TABLE_NAME"
Using dbCon As New System.Data.SqlClient.SqlConnection("CONNECTIONSTRING")
dbCon.Open()
Me.ComboBox1.DataSource = dbCon.GetSchema("Tables")
End Using

امیدوارم شما به جای CONNECTIONSTRING مقدار معتبر جاری بانک خودتان را وارد نمایید.

anooshiran
پنج شنبه 25 بهمن 1386, 08:38 صبح
آقای H2 سلام
کد شما درست عمل می نماید و بخش عظیمی از مشکل مرا حل نمود.



Me.ComboBox1.DisplayMember = "TABLE_NAME"
Using dbCon As New System.Data.SqlClient.SqlConnection("CONNECTIONSTRING")
dbCon.Open()
Me.ComboBox1.DataSource = dbCon.GetSchema("Tables")
End Using



حال اگر امکان دارد برایم توضیح دهید که چگونه می توان Table های خاصی را که مثلا با حرف 'B' شروع می شوند در combobox قرار داد.
با تشکر فراوان

hassan razavi
پنج شنبه 25 بهمن 1386, 09:28 صبح
متد GetSchema یک DataTable برمیگردونه . حالا شما می تونید بر این DataTable توسط یک DataView فیلتر اعمال کنید . (با استفاده از خاصیت FilterRow)

anooshiran
پنج شنبه 25 بهمن 1386, 15:11 عصر
متد GetSchema یک DataTable برمیگردونه . حالا شما می تونید بر این DataTable توسط یک DataView فیلتر اعمال کنید . (با استفاده از خاصیت FilterRow)

با عرض سلام و تشکر
اگر امکان دارد در این مورد برایم بیشتر توضیح دهید من با متد getschema اصلا آشنایی ندارم. اگر امکان دارد کد آن را برایم بنویسید. ممنون

ghafoori
پنج شنبه 25 بهمن 1386, 16:45 عصر
این هم کد

Me.ComboBox1.DisplayMember = "TABLE_NAME"
Using dbCon As New System.Data.SqlClient.SqlConnection("connection")
dbCon.Open()
Dim view As DataView = dbCon.GetSchema("Tables").DefaultView
view.RowFilter = "TABLE_name LIKE '00-00%'"
Me.ComboBox1.DataSource = view
End Using

anooshiran
پنج شنبه 25 بهمن 1386, 18:50 عصر
جناب آقای غفوری عزیز
با عرض سلام از شما بی نهایت به خاطر ارسال این کد و راه حل ممنونم



این هم کد

Me.ComboBox1.DisplayMember = "TABLE_NAME"
Using dbCon As New System.Data.SqlClient.SqlConnection("connection")
dbCon.Open()
Dim view As DataView = dbCon.GetSchema("Tables").DefaultView
view.RowFilter = "TABLE_name LIKE '00-00%'"
Me.ComboBox1.DataSource = view
End Using

بی نهایت سپاسگزارم نه تنها به خاطر حل مشکل خودم.
سپاسگزارم زیرا هنوز هم رسم کمک و حل مشکل دیگران از یادها نرفته است.
و ممنون از مسئولان این فروم