PDA

View Full Version : پیدا کردن نام TABLE های موجود در یک DATABASE و ذخیره نامها در یک COMBOBOX یا DATAGRIDVIEW



anooshiran
چهارشنبه 24 بهمن 1386, 12:34 عصر
سلا دوستان
من این سوال را قبلا هم مطرح کرده بودم ولی متاسفانه در سوال اشتباهی رخداده بود که لازم دیدم آن را تصحیح کرده و بصورت یک تاپیک جدید ارسال کنم

من در پروژه ای که بر روی آن کار می کنم بنا بر نیاز تمام Table ها را به صورت Dynamic ایجاد می کنم. بنابر این برای ایجاد یک Table جدید نیاز دارم که بتوان نام های Table های ایجاد شده قبلی را از DATABASE خوانده و آن ها را درون Array یا Combobox یا Datagridview قرار دهم و بر اساس اسم های قبلی اسم Table [ndn vh hkjohf ;kl.
نام تمام Table های من با "00-00" شروع می شود . ینابر این لازم است بتوانم در DATABASE تمام Table هایی را که نام آن با "00_00" شروع شده بیابم و در جایی ذخیره کنم.
با تشکر از تمام دوستان

visual_sadegh
پنج شنبه 25 بهمن 1386, 07:34 صبح
SELECT name FROM dbo.sysobjects WHERE (name LIKE N'00-00%')
یک دیتا آداپتور به فرمت اد کن بعد اونو به دیتابیست وصل کن و از این کوری استفاده کن

anooshiran
پنج شنبه 25 بهمن 1386, 19:13 عصر
با تشکر از همه دوستان
این مشکل در تاپیک دیگری که قبلا نوشته بودم حل شد.
از همه دوستان به خاطر راهنماییهایشان ممنونم

mohamad2007
جمعه 26 بهمن 1386, 08:08 صبح
با تشکر از همه دوستان
این مشکل در تاپیک دیگری که قبلا نوشته بودم حل شد.
از همه دوستان به خاطر راهنماییهایشان ممنونم
سلام دوست عزیز anooshiran
چه خوب می شد اگه لینک اونو می ذاشتی تا بقیه دوستانی که این مشکل دارن و به این تاپیک سر می زنند، دست خالی برنگردند.
با تشکر.

hassan razavi
جمعه 26 بهمن 1386, 08:43 صبح
لطفا لینک تاپیک حل شده را بگذارید

parsavb
پنج شنبه 23 خرداد 1387, 15:04 عصر
دوستانی که جواب این تاپیک رو خواسته بودن این کد رو امتحان کنند البته می تونید برای خودتون این اطلاعات بدیت آمده رو تو دیتا گرید یا کومبوباکس نشون بدید بستگی به خلاقیت خودتون داره


'refrence= microsoft sqldmo object library
'================================================
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If Len(Trim(txtserver.Text)) = 0 Then
MsgBox("لطفاً نام بانک را وارد کنید")
ExitSub
EndIf
If Len(Trim(txtlogin.Text)) = 0 Then
MsgBox("لطفاً نام کاربری خود را وارد کنید")
ExitSub
EndIf
If Len(Trim(txtpassword.Text)) = 0 Then
MsgBox("لطفاً کلمه عبور خودرا وارد کنید")
ExitSub
EndIf
connecttoserver(Trim(txtserver.Text), _
Trim(txtlogin.Text), Trim(txtpassword.Text))
EndSub
'================================================= ===============================
'اتصال به سرور
PrivateFunction connecttoserver(ByVal sservername AsString, _
ByVal susername AsString, ByVal spassword AsString) AsBoolean
Dim objserver AsNew SQLDMO.SQLServer
Dim objdb AsNew SQLDMO.Database
connecttoserver = False
objserver.Connect(sservername, susername, spassword)
lst_server.Items.Clear()
lst_database.Items.Clear()
ForEach objdb In objserver.Databases
lst_server.Items.Add(objdb.Name)
Next
IfMe.lst_server.Items.Count <> 0 Then
lst_server.SelectedIndex = 0
EndIf
objserver = Nothing
objdb = Nothing
EndFunction
'================================================= ==========================
'پر کردن لیست باکس
PrivateSub lst_server_SelectedIndexChanged(ByVal sender AsObject, _
ByVal e As System.EventArgs) Handles lst_server.SelectedIndexChanged
Dim objserver AsNew SQLDMO.SQLServer
Dim objdb AsNew SQLDMO.Database
Dim objtable As SQLDMO.Table
Dim sfilename AsString
Me.lst_database.Items.Clear()
objserver.Connect(Trim(txtserver.Text), Trim(txtlogin.Text), Trim(txtpassword.Text))
sfilename = Me.lst_server.Text
objdb = objserver.Databases.Item(sfilename)
ForEach objtable In objdb.Tables
IfNot objtable.SystemObject Then
lst_database.Items.Add(objtable.Name)
EndIf
Next
EndSub

البته برنامه کاملش رو رو قسمت کامپوننت های سایت گذاشتم امیدوارم به دردتون بخوره
این هم لینکش
http://barnamenevis.org/forum/showthread.php?p=535429#post535429