PDA

View Full Version : پرکردن یکباره آرایه با سلکت ( dt )



modern_amin
دوشنبه 30 اردیبهشت 1392, 11:40 صبح
سلام
چطور میتونم یک آرایه رو یهو پر کنم و از حلقه for استفاده نکنم؟

tooraj_azizi_1035
دوشنبه 30 اردیبهشت 1392, 12:35 عصر
bool[] abValues = new[1000000];
Array.Populate(abValues, true);


and:


bool[] abValues = new bool[1000];
abValues = abValues.Select( n => n = true ).ToArray<bool>();

modern_amin
یک شنبه 26 خرداد 1392, 13:48 عصر
میشه نشون بدید چطور میشه یک ستون از select که از نوع رشته هم هست رو یکباره به آرایه بریزم
یا اینکه چطور یک dt رو بهش ارتباط بدم

tooraj_azizi_1035
یک شنبه 26 خرداد 1392, 14:50 عصر
واضح تر بگو

modern_amin
یک شنبه 06 مرداد 1392, 16:15 عصر
یک سلکت ساده می نویسم و بعد ببین در حالت فعلی چطوری پر میکنم

بانک وضعیت با دو ستون ردیف و نام گروه و اطلاعات داخلش

----1---------گروه1------
----2---------گروه2------
----3---------گروه3------
----4---------گروه4------
----5---------گروه5------
----6---------گروه6------

و کد فعلی...

com1.CommandText = " SELECT * FROM Tvaziyat WHERE (goroh = '" + comboBox_laod_goroh_entekhabi.Text + "') ";
dr = com1.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
array_load_tarikh[Convert.ToInt32(dr.GetValue(0))] = Convert.ToString(dr.GetValue(1));
}
}


ولی اینکار درست نیست و نمیخام با حلقه وایل و تک تک پر کنم
میخام سلکتم رو یهو بریزم تو dt یا ds
و بعد یهو بریزم تو آرایه ولی متاسفانه بلد نیستم چطور یهو بریزمش تو آرایه.......
لطفا کمک کنید..............................

tooraj_azizi_1035
یک شنبه 06 مرداد 1392, 19:21 عصر
string sqlCommand = "SELECT * FROM TABLE";
string connectionString = "blahblah";





SqlCommand cmd = new SqlCommand(sqlCommand, new SqlConnection(connectionString));
cmd.Connection.Open();
DataTable table = new DataTable();
table.Load(cmd.ExecuteReader());


Array arr = table.AsEnumerable().ToArray();

modern_amin
سه شنبه 29 مرداد 1392, 15:29 عصر
ممنون بابت پاسخ ولی چندتا مشکل دارم

1-اگه بخام یک آرایه دو بعدی و یا سه بعدی رو یجا پر کنم چیکار باید کنم؟
2-بعد پر شدن چطوری به اندیس مثلا دوم آرایه دسترسی پیدا کنم؟جواب نمیده آخه
3-نمیتونم اونو از STRING به STRING[] تبدیل کنم؟
4-تمام سطرهای آرایه من {System.Data.DataRow} شده

modern_amin
چهارشنبه 30 مرداد 1392, 10:44 صبح
????????????????????????????????/

modern_amin
جمعه 01 شهریور 1392, 21:00 عصر
ایهاالناس..................

مهرداد صفا
جمعه 01 شهریور 1392, 22:52 عصر
با سلام.
لطفا اول مشخص کنید دقیقا چه چیز (هایی) رو قصد دارید از DataTable به آرایه منتقل کنید.

مهرداد صفا
شنبه 02 شهریور 1392, 06:02 صبح
برای گرفتن مقدار یک فیلد مشخص از DataTable در آرایه:

string[] names = table.AsEnumerable().Select(row => row[0].ToString()).ToArray();

همانطور که می بینید فیلد مورد نظر مشخص شده و مقدار به رشته تبدیل شده اما در کدی که شما نوشتید کل row به عنوان یک عضو از آرایه انتخاب شده.

برای گرفتن کل جدول در یک آرایه دو بعدی به شکل زیر عمل کنید:

string[][] data=table.Rows.Cast<DataRow>().Select(row=>row.ItemArray.Select(field=>field.ToString()).ToArray()).ToArray();

که البته همانطور که می بینید داده ها به این صورت قابل دسترس هستند:


data[RowIndex][ColumnIndex]....


برای اینکه به صورت data[Column][row] به داده ها دسترسی داشته باشید کد بالا را به این شکل تغیر دهید:

string[][] data=table.Columns.Cast<DataColumn>().Select(column=> table.AsEnumerable().Select(row=>row[column].ToString()).ToArray()).ToArray();