با سلام
چجوری میشه جداول یک دیتابیس و همچنین فیلدهای آن جدول را به دست آورد
با سلام
چجوری میشه جداول یک دیتابیس و همچنین فیلدهای آن جدول را به دست آورد
به نام تنها برنامه نویس هستی
سلام ,
برای بدست آوردن لیست Database ها در Sql Server از این می تونید استفاده کنید.
من می خوام لیست جداول دیتابیس هارو داشته باشم نه لیست دیتابیس هارو
سلام
فرض کنیم اسم کانکشنتون conn باشه، از کد زیر استفاده کنید:
DataTable t = conn.GetSchema("Tables");
حالا چجوری میشه اسم فیلدهای یک جدول رو به دست آورد
از این کوئری برای بدست آوردن نام فیلدها میشه استفاده کرد:
"SELECT * FROM sys.columns WHERE object_id = OBJECT_ID('dbo.tablename')"
این کوئری مختصرتر و مرتبتر نتایج رو به شما نشون میده:
SELECT column_name, data_type, character_maximum_length, table_name,ordinal_position, is_nullable
FROM information_schema.COLUMNS WHERE table_name LIKE 'YOUR_TABLE_NAME'
ORDER BY ordinal_position
کوئریها رو از اینجا نقل میکنم: http://stackoverflow.com/questions/1...ble-sql-server
میشه تو یه برنامه کوچک بهم نشون بدین
قبل از خوندن این پست خیلی بهتره که تلاش کنید از پاسخهای قبلی به نتیجه برسید، برای تجربه برنامهنویسیتون خیلی بهتره. اگر به نتیجه نرسیدید ادامه مطلب رو بخونید.
این یک برنامه کنسول هست که تمام جدولهای یک دیتابیس رو در میاره و اطلاعات فیلدهاش رو چاپ میکنه. من از دیتابیس SQL Server استفاده کردم و ممکنه در مورد نرمافزارهای پایگاه داده دیگه لازم باشه قدری تغییر بدید.
برنامه تغییر یافته برنامه دومی هست که در این لینک وجود داره: http://support.microsoft.com/kb/310107
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
namespace TestDB
{
class Program
{
static void Main(string[] args)
{
SqlConnection cn = new SqlConnection();
SqlCommand cmd = new SqlCommand();
DataTable schemaTable;
SqlDataReader myReader;
//Open a connection to the SQL Server Northwind database.
cn.ConnectionString = "TYPE YOUR CONNECTION STRING HERE";
cn.Open();
DataTable Tables = cn.GetSchema("Tables");
//Retrieve records from the Employees table into a DataReader.
cmd.Connection = cn;
foreach (DataRow myTable in Tables.Rows)
{
Console.WriteLine("TableName: "+ myTable["TABLE_NAME"]);
Console.WriteLine("------------------------------------------");
cmd.CommandText = "SELECT * FROM "+myTable["TABLE_NAME"];
myReader = cmd.ExecuteReader(CommandBehavior.SchemaOnly);
//Retrieve column schema into a DataTable.
schemaTable = myReader.GetSchemaTable();
//For each field in the table...
foreach (DataRow myField in schemaTable.Rows)
{
//For each property of the field...
foreach (DataColumn myProperty in schemaTable.Columns)
{
//Display the field name and value.
Console.WriteLine(myProperty.ColumnName + " = " + myField[myProperty].ToString());
}
Console.WriteLine();
//Pause.
//Console.ReadLine();
}
//Always close the DataReader and connection.
myReader.Close();
Console.WriteLine("=============================== ===========");
}
cn.Close();
}
}
}
اگر بخوام فقط اسم ستون رو تنها نشون بده وبقیه propretise ها رو نیاره باید چیکار کنم
با این کد مشکلم حل شد
if (myProperty.ColumnName.ToString() == "ColumnName")
{
cmbField.Items.Add(myField[myProperty].ToString());
}