PDA

View Full Version : شمارش تعداد فیلدهای دیتابیس



bitcob589
جمعه 05 خرداد 1391, 13:37 عصر
با سلام
چگونه می توان تعداد فیلدهای دیتابیس شمارش کرد در یک آرایه از نوع string ذخیره کرد

bitcob589
جمعه 05 خرداد 1391, 14:21 عصر
شمارش تعداد آن به صورت کد زیر توسط برنامه نویس مشخص نشود به ازای خواندن هر فیلد دیتابیس یکی به مقدار قبلی اضافه کند و در آرایه از نوع string ذخیره کند

string[] s = new string[30];

فرید نجفلو
جمعه 05 خرداد 1391, 17:22 عصر
سلام

//دستور دریافت اطلاعات ستون ها
//اطلاعات بیشتری نیز می توانید با این دستور بدست آوید - با گذاشتن * در دستور
string TSQL = @" SELECT
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table1'";
//نتیجه دستور
DataTable dtRes = new DataTable();

SqlConnection Conn = new SqlConnection(@"Data Source=.;Initial Catalog=test;Integrated Security=True");
SqlDataAdapter adp = new SqlDataAdapter(TSQL, Conn);
//اجرای دستور
adp.Fill(dtRes);
//لیست نام ستون ها
List<string> ColNameList = new List<string>();
//پر کردن لیست نام
foreach (DataRow aRow in dtRes.Rows)
ColNameList.Add(aRow[@"COLUMN_NAME"].ToString());
//تبدیل به آرایه در صورت نیاز
string[] Names = ColNameList.ToArray();

bitcob589
شنبه 06 خرداد 1391, 15:46 عصر
آیا امکان وجود دارد با استفاده از sqlDAtaReader و با حلقه forech کد پست قبل را پیاده سازی کرد

فرید نجفلو
شنبه 06 خرداد 1391, 15:58 عصر
سلام
کار نشد نداریم!

البته الان این کد خودش با حلقه کار می کنه در مورد دیا ریدر هم مشکلی نیست ولی دیتاتیبل ا از نظر کار با دیتابیس ارجحیت دارن چون دیتا ریدر سربار بیشتری روسرور داره و نقاط ضعف های دیگه ای هم هست

شما بگید دقیقا چی می خواید بنویسید تا راهنمایی متناسب بگیرید

bitcob589
شنبه 06 خرداد 1391, 16:22 عصر
سلام
کار نشد نداریم!

البته الان این کد خودش با حلقه کار می کنه در مورد دیا ریدر هم مشکلی نیست ولی دیتاتیبل ا از نظر کار با دیتابیس ارجحیت دارن چون دیتا ریدر سربار بیشتری روسرور داره و نقاط ضعف های دیگه ای هم هست

شما بگید دقیقا چی می خواید بنویسید تا راهنمایی متناسب بگیرید
نحوه نوشتن کد پست 3 با استفاده از sqlDAtaReader

فرید نجفلو
شنبه 06 خرداد 1391, 16:54 عصر
بفرمایید:

//دستور دریافت اطلاعات ستون ها
//اطلاعات بیشتری نیز می توانید با این دستور بدست آوید - با گذاشتن * در دستور
string TSQL = @"SELECT
COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Table1'";
//نتیجه دستور
DataTable dtRes = new DataTable();

SqlConnection Conn = new SqlConnection(@"Data Source=.;Initial Catalog=test;Integrated Security=True");
SqlCommand cmd = Conn.CreateCommand();
cmd.CommandText = TSQL;
Conn.Open();
SqlDataReader dr = cmd.ExecuteReader();

//لیست نام ستون ها
List<string> ColNameList = new List<string>();
//پر کردن لیست نام
while (dr.Read())
ColNameList.Add(dr.GetString(0));

dr.Close();

if (Conn.State!=ConnectionState.Closed)
Conn.Close();

//تبدیل به آرایه در صورت نیاز
string[] Names = ColNameList.ToArray();