PDA

View Full Version : پر كردن ديتاگريد با آرايه اي از استراكچر



Sharif Lotfi
شنبه 02 شهریور 1387, 09:38 صبح
سلام
من يه آرايه از استراكچر s1 دارم مثل
dim myArray(10) as s1
در زمان اجراي برنامه محتويات آرايه عوض ميشه . يه Datagridview هم دارم كه ميخوام داده هاش رو از آرايه بخونه . ميخوام ستونهاش فيلدهاي استراكچر باشن و رديفهاش آرايه هاي 1 تا 10 . كد رو بصورت زير نوشتم ولي كار نميكنه
Datagridview1.Datasource=myArray
همونطور كه گفتم ميخوام در حين برنامه كه مقادير آرايه عوض ميشن اين مقادير توي ديتاگريد هم نشون داده بشن و تغييرات رو ببينم .
ممنون ميشم كمكم كنين .

Sharif Lotfi
دوشنبه 04 شهریور 1387, 10:31 صبح
يا دوستان كم لطف شدن يا اينكه سوالم زيادي حرفه اي بوده (كه فكر نميكنم)
در هر صورت يه بار ديگه خواهش مي كنم كمك كنين

Sharif Lotfi
سه شنبه 05 شهریور 1387, 15:05 عصر
نه بابا مثل اينكه قضيه جديه
:گریه::گریه::گریه:
بابا يكي جواب بده ديگه :عصبانی++::عصبانی++::عصبانی++:

salehbagheri
چهارشنبه 06 شهریور 1387, 11:01 صبح
كدت يك كمي پيچيده است! كمي طول ميكشه تا طرز كارش رو بفهميم!

پس اگر ميشه بيشتر توضيح بدهيد! مثلا:

1- توضيحات بيشتر در مورد S1 و خروجي آن!
2- نحوه نمايش در ديتاگريد!

در ضمن از يك ارايه نمي تونيد به عنوان ديتاسورس استفاده كنيد!
بايد به اين صورت باشه:

DataGridView.Row(0).Column(0).Value = MyArray(0).ToString

Sharif Lotfi
چهارشنبه 06 شهریور 1387, 11:35 صبح
استراكچر s1 سه فيلد داره

Structure s1
Public FirstName As String
Public LastName As String
End Structure
و آرايه myArray كه ده تا عضو از نوع s1 داره

dim myArray(10) as s1
مثلا

myArray(0).FirstName="fn0"
myArray(0).LastName="ln0"
حالا ميخوام ديتاسورس ديتاگريدم رو وصل كنم به اين آرايه بطوريكه فيلدهاي من FirstName و LastName باشن و ركوردهاي من آرايه 0 تا 9
اميدوارم توضيحم گويا باشه

Dariuosh
پنج شنبه 07 شهریور 1387, 09:47 صبح
ميشه بگيد چرا ميخواهيد از اين راه استفاده کنيد
يعني نيازتون چي هست که به خاطرش ميخوايد اين کارو انجام بديد ( آرايه از استراکچر )

Sharif Lotfi
پنج شنبه 07 شهریور 1387, 09:52 صبح
ميشه بگيد چرا ميخواهيد از اين راه استفاده کنيد
يعني نيازتون چي هست که به خاطرش ميخوايد اين کارو انجام بديد ( آرايه از استراکچر )

آخه محتويات آرايه در طول اجراي برنامه تغيير ميكنه . من ميخوام تغييرات رو توي ديتاگريد ببينم

Dariuosh
پنج شنبه 07 شهریور 1387, 10:05 صبح
آخه محتويات آرايه در طول اجراي برنامه تغيير ميكنه . من ميخوام تغييرات رو توي ديتاگريد ببينم
ميگم اگه فقط تو همين پروژت ميخاي ازش استفاده کني و قصد روال کردنه اين کارو نداري ...

استراکچر که ثابته ! خوب ميشه نتيجه گرفت که ميتونيم يه DataTable داشته باشيم با فيلدهايه استراکچر
بعدشم ميشه يه متد مثلاً Refresh تعريف کني که در واقع فقط يه حلقه است که تو مقادير آرايت ميچرخه و ديتا تيلت رو پر ميکنه
گريدمون هم که به DataTable وصله

Sharif Lotfi
پنج شنبه 07 شهریور 1387, 10:25 صبح
درسته ولي چون تعداد دفعاتي كه مقادير آرايه عوض ميشه خيلي زياده سرعت اجراي برنامه اينجوري خيلي پايين مياد . گفتم شايد يه روش اصولي پيدا كنم

Dariuosh
پنج شنبه 07 شهریور 1387, 10:52 صبح
اگه آرايه خيلي بزرگ نيست فک نميکنم زياد کند شه
ولي ميتونيد اون متد Refresh رو پارامتر دار کنيد که مثلاً اگه رديف خاصي از آرايه تغيير کرد فقط همون رديف رو تو ديتاتيبل آپديت کنه


روش اصولي
در هر صورت تمام روشهاي کلاسه شده هم فک ميکنم يه همچين روشهايي داشته باشن چون بالاخره بايد تو ديتا بچرخن تا بتونن اين کارو بکنن