PDA

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



saied7468
شنبه 09 آبان 1388, 21:43 عصر
سلام
من چطوری می تونم نام جداول یک بانک sql رو بدست بیارم؟؟؟

Hamid.Mayeli
شنبه 09 آبان 1388, 22:01 عصر
سلام

تو C#??????????????

تو SQL از جدول sysObjects می تونی استفاده کنی.

Select name from sysObjects Where xType = 'U'

البته تو 2005 و 2008 باید از sys.sysObjects یا sys.Objects استفاده کنی.


موفق باشی.

saied7468
شنبه 09 آبان 1388, 22:10 عصر
میشه راهنمایی کنید که خروجی رو چطور در کامبو باکس بریزم؟؟؟

این کد منه مشکلم توی پر کردن دیتا ست هست



conkpi.ConnectionString = "Data Source=" + textBox1.Text + ";initial catalog=KPIBANK ;integrated security=true;";
conkpi.Open();
//sql
tsqlkpi.CommandText = "Select name from sysObjects Where xType = 'U'";
tsqlkpi.Connection = conkpi;
//Adapter
sdakpi.SelectCommand = tsqlkpi;
//dataset
sda.Fill(dataskpi,"");

Ebrahim Asadi
یک شنبه 10 آبان 1388, 11:07 صبح
سلام
براي به دست آوردن نام جداول بانك اطلاعاتي مي تواني از متد GetSchema استفاده كني. اين روش، مستقل از بانك اطلاعاتي است.
ابتدا بايد يك connection‌ ايجاد كني:

System.Data.SqlClient.SqlConnection connection = new SqlConnection(connectionString);
يا

System.Data.OracleClient.OracleConnection connection = new System.Data.OracleClient.OracleConnection(connecti onString);

سپس با استفاده از دستوارت زير مي تواني نام Table هاي بانك اطلاعاتي را به دست آوري:



connection.Open();
string[] restrictions = new string[4];
restrictions[3] = "BASE TABLE";

DataTable metaDataTable = connection.GetSchema("Tables", restrictions);

for (int i = 0; i < metaDataTable.Rows.Count; i++)
{
string tableName = metaDataTable.Rows[i]["TABLE_NAME"].ToString();
if (tableName != "dtproperties")
{

}
}


از restriction براي فيلتر كردن خروجي GetSchema استفاده مي شود. در كد بالا اگر از "BASE TABLE" استفاده نشود، View ها را هم نشان مي دهد.