PDA

View Full Version : سوال: چگونگي بدست آوردن ليست جدولهاي ديتا بيس



dab_hrd
سه شنبه 11 مهر 1391, 08:06 صبح
با سلام
مي خواستم بدانم چگونه مي توانم وجود يك جدول خاص را داخل ديتا بيس چك كنم ؟
با تشكر

hakim22
سه شنبه 11 مهر 1391, 08:46 صبح
کنترل SQL Server با کمک کتابخانه ی فرمانهای SMO ، که SQL Managemtn Object است ممکنه.
شما می توانید همه کارهایی که دستی پشت SQL انجام می دهید از طریق این کتابخانه انجام بدید.
به این مقاله سر بزنید :

http://www.mssqltips.com/sqlservertip/1826/getting-started-with-sql-server-management-objects-smo/

Nima_kyan
سه شنبه 11 مهر 1391, 09:01 صبح
تو خود sql تعداد خیلی زیادی sp مفید پیاده سازی شده که واسه همچین مواقعی به کار میرن
شما فقط کافیه یه خط کد زیر رو اجرا کنید فهرستی از جداول موجود در پایگاه داده کنونی رو بهت میده.

exec sp_tables

dab_hrd
سه شنبه 11 مهر 1391, 09:24 صبح
متاسفانه جواب نداد من مي خواهم يك جدول خاص و داخل ديتابيسم چك كنم
با تشكر

Nima_kyan
سه شنبه 11 مهر 1391, 09:39 صبح
دوست عزیز به این شکل استفاده کن

exec sp_tables
@table_name='%TableName%'

kebriya
سه شنبه 11 مهر 1391, 09:50 صبح
این کد رو تست کردم جواب میده



System.Data.SqlClient.SqlConnection SqlCon = new
System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=jewel;Integrated Security=True");
SqlCon.Open();

System.Data.SqlClient.SqlCommand SqlCom = new System.Data.SqlClient.SqlCommand();
SqlCom.Connection = SqlCon;
SqlCom.CommandType = CommandType.StoredProcedure;
SqlCom.CommandText = "sp_databases";

System.Data.SqlClient.SqlDataReader SqlDR;
SqlDR = SqlCom.ExecuteReader();

while (SqlDR.Read())
{
listBox1.Items.Add (SqlDR.GetString(0));
}

Nima_kyan
سه شنبه 11 مهر 1391, 10:02 صبح
این کد رو تست کردم جواب میده



System.Data.SqlClient.SqlConnection SqlCon = new
System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=jewel;Integrated Security=True");
SqlCon.Open();

System.Data.SqlClient.SqlCommand SqlCom = new System.Data.SqlClient.SqlCommand();
SqlCom.Connection = SqlCon;
SqlCom.CommandType = CommandType.StoredProcedure;
SqlCom.CommandText = "sp_databases";

System.Data.SqlClient.SqlDataReader SqlDR;
SqlDR = SqlCom.ExecuteReader();

while (SqlDR.Read())
{
listBox1.Items.Add (SqlDR.GetString(0));
}


این کدی که شما نوشتین فهرست پایگاه داده های سرور جاری رو برمیگردونه نه جداول یک پایگاه داده خاص.

kebriya
سه شنبه 11 مهر 1391, 10:38 صبح
این کدی که شما نوشتین فهرست پایگاه داده های سرور جاری رو برمیگردونه نه جداول یک پایگاه داده خاص.

بله آقای مهندس. حق با شماست. هواسم نبود
این کد دیگه واقعا جواب میده



System.Data.SqlClient.SqlConnection SqlCon = new
System.Data.SqlClient.SqlConnection("Data Source=.;Initial Catalog=jewel;Integrated Security=True");
SqlCon.Open();
List<string> result = new List<string>();
System.Data.SqlClient.SqlCommand cmd = new
System.Data.SqlClient.SqlCommand("SELECT name FROM sys.Tables", SqlCon);
System.Data.SqlClient.SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
listBox1.Items.Add(reader["name"].ToString());

Nima_kyan
سه شنبه 11 مهر 1391, 11:22 صبح
این کد دیگه واقعا جواب میده
کدتون درسته و جواب میده ولی نه جواب سوال دوستمون رو.

من مي خواهم يك جدول خاص و داخل ديتابيسم چك كنم
کدی که ایشون میخوان به این شکله :


SqlConnection con= new SqlConnection("Data Source=.;Initial Catalog=Database_Name;Integrated Security=True");
SqlCommand cmd= new SqlCommand("exec sp_tables @table_name='%'"+TableName+"'%'",con);

con.open();
cmd.ExecuteReader();
con.close();

sqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);