PDA

View Full Version : پیدا کردن لیستdbهاوtableها و ستون های هر سرور در #C



dorna1985
یک شنبه 14 بهمن 1386, 13:35 عصر
سلام
آیادر #C در ارتباط با sql این امکان وجود داره که هنگام اتصال به یک سرور بتوان لیست database های موجود در اون سرور و بعد با انتخاب یکی از همون databaseها tableهای data base و در مرحله بعد هم ستون های هر جدول را دید.
برای این سه عمل احتمالا کدها و کلاس هایی وجود داره
کسی می تونه کمک کنه؟

Masoud_TB
یک شنبه 14 بهمن 1386, 14:18 عصر
بله. می تونی از دستورات خود SQL Server استفاده کنی.
برای به دست آوردن لیست بانک های اطلاعاتی از یک stored procedure به نام ssp_database استفاده کن.
برای به دست آوردن لیست Table ها , View ها و ... می تونی از sysobjects استفاده کنی. کد زیر لیست جداول رو به شما خواهد داد:


select * from sysobjects where xtype = 'U'
برای به دست آوردن لیست View ها


select * from sysobjects where xtype='V'
حالا برای به دست آوردن لیست ستون ها


select * from syscolumns

dorna1985
یک شنبه 14 بهمن 1386, 18:43 عصر
از پاسختون ممنونم، ولی مشکل منو حل نمی کنه.
چون می خوام بعد از انتخاب هر سرور فقط دیتابیس های اونو نشون بده و بعد از انتخاب دیتابیس لیست جدوال همون دیتابیس رو بیاره و کاربر جدول مورد نظرو انتخاب کرده و بتونه لیست ستون هاش و نوعشون رو ببینه.
می دونم در sqldataminingاین مساله برای سرویس ها و استراکچرها و مدل ها از طریق adomd ممکنه ولی برای sql رو نمی دونم چه جوریه؟
لطفا کمک کنید.

sinpin
دوشنبه 15 بهمن 1386, 07:50 صبح
این سئوال بارها در تالار SQL Server مطرح و به جواب رسیده. به اونجا مراجعه کنید.

Masoud_TB
دوشنبه 15 بهمن 1386, 09:58 صبح
خوب دوست عزیز با استفاده از SQLCommand دستوراتی رو که نوشتم اجرا کن نتیجه اش میشه همانی که شما می خواهی!!!!!


SqlConnection cnn = new SqlConnection(ConfigurationManager.ConnectionStrin gs["myConnection"].ConnectionString);
SqlCommand cmd = new SqlCommand("sp_Databases",cnn);
cmd.CommandType = CommandType.StoreProcedure;
try{
cnn.Open();
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read()
{
ListBoxDatabases.Items.Add(reader[0].ToString());
}
reader.Close();
}
catch(Exception ex)
{
throw;
}

finally
{
if(cnn != null)
cnn.Close();
}

و همینطور ادامه بده تا انتها ....

سار
دوشنبه 15 بهمن 1386, 13:24 عصر
به نظر من استفاده از SQL DMO خیلی بهتر هست چرا کسی از این استفاده نمیکنه؟
به نظر من که خیلی بهتره.
دردسر کدهای SQL رو هم نداره.

http://www.csharphelp.com/archives2/archive342.html

یکم باهاش کار کنی و تو Object Browser بگردی چیزهای باحال بهتری هم توش می بینید.

http://www.google.com/search?hl=en&q=SQLDMO+in+C%23

dorna1985
سه شنبه 16 بهمن 1386, 10:46 صبح
sqldmo همونیه که من می خواستم ، ولی
1-تمام اطلاعاتی که تو help وجود داره فقط مربوط به sql2000و کدی به زبان #C نداره تا بتونم راه دریافت ستون ها رو هم پیدا کنم
2_اصل مشکل اینجاست که لینکی که شما معرفی کرده بودین و برنامه ای به زبان #C(VS2003)داشت.رو سیستم من سرور هامو شناسایی نمی کنه و به تبع اون ادامه مسائل
فکر می کنم چون sqlمن2005 این برنامه درست کار نمی کنه
3-اگه احتیاج باشه dll اون رو در90 قرار بدم و نصب کنم یا چیزی شبیه اون، نمی تونم رو هر سیستمی که قراره برنامه اجرا شه این کارو بکنم

راه حل شما چیه؟