PDA

View Full Version : سوال: اشکال کار با دیتا بیس و گرید



SeyedMoosavi
دوشنبه 11 آذر 1387, 23:27 عصر
سلام خدمت دوستان و استادان ارجمندم
من توی دیتا بیسم یه فیلد دارم از نوع yse no حالا می خوام بگم اگه که نوشته بود yse تو برنامه به من مجرد رو نشون بده و اگر نوشته no تو دیتا بیس بنویسه متاهل
باید چیکار کنم؟
با تشکر از دوستان و استادان عزیزم

Dr.Bronx
دوشنبه 11 آذر 1387, 23:41 عصر
ببين
شما به جاي يك تكست باكس دو تا تكست باكس بزار
يكيش رو invisible كن يعني همون visible =false
اوني كه invisible كردي رو به اون فيلد بيند كن يعني متصلش كن
حالا مياي موقعي كه داري اطلاعات رو تفكيك مي كني يا اين كه توي گريد حركت مي كني
بگو


if text1.text = yes
then
text2.text = "مجرد"
else
text2.text = "متاهل"
end if

SeyedMoosavi
دوشنبه 11 آذر 1387, 23:47 عصر
ببين
شما به جاي يك تكست باكس دو تا تكست باكس بزار
يكيش رو invisible كن يعني همون visible =false
اوني كه invisible كردي رو به اون فيلد بيند كن يعني متصلش كن
حالا مياي موقعي كه داري اطلاعات رو تفكيك مي كني يا اين كه توي گريد حركت مي كني
بگو


if text1.text = yes
then
text2.text = "مجرد"
else
text2.text = "متاهل"
end if
تشکر
اما من می خوام تو گریدم نوشته ها درست بشن یعنی توی خونه های گریدم بنویسه مجرد یا متاهل

SeyedMoosavi
سه شنبه 12 آذر 1387, 00:10 صبح
مثل اینکه منظورم رو خوب نرسوندم
ببینید من یه فیلد از نوع Bit دارم
پایگاه داده من با SQL Server درست شده
خوب حالا از اونجایی کههمه می دونید فیلد های که از نوع Bit هستن فقط True / False میگیرن یا 0-1
خوب 1 یعنی مجرد / 0 یعنی متاهل
حالا می خوام کل رکورد هارو توی گرید (MSHFlexGrid) نشون بدم طوری که اگه توی فیلد صفر وارد شده بود به من به جای صفر متاهل نشون بده
نمی دونم فهمیدین یا نه ؟!

اوبالیت به بو
سه شنبه 12 آذر 1387, 01:24 صبح
به نظر من اين سوال قشنگ ترين سوالي بود كه تاحالا تويه تالار vb پرسيده شده بود.
خيلي رويه اين سوال فكر كردم اما متاسفانه ديدم vb6 تويه كنترل DataGrid يه سري ضعف هايي داره. بايد اين امكان در اختيار برنامه نويس قرار داده بشه تا با يه خاصيت مثلاً به اسم Value كار بكنه و با يه خاصيت مثل DisplayValue اون رو نمايش بده.
خيلي دوست داشتم vb6 رو دور بزنم ولي نشد. ايشون يه فيلدي دارن كه حتماً بايد به صورت bool تعريف بشه و بر اساس مقدار اون تويه سلول هاي DataGrid مقاديري نمايش داده بشه. اگر فيلد شماره 2 ما در جدول بانك اطلاعاتي يعني Columns شماره 1 مربوط به كنترل DataGrid اين خاصيت bool رو نگه داره پس ميشه:


Select Case Adodc1.Recordset.Fields("weddingStatut").Value
Case 0:
DataGrid1.Columns(1).Text = "مجرد"
Case 1:
DataGrid1.Columns(1).Text = "متاهل"
End Select

اگر كد رو تست كنيد مي بينيد كه خطاي عدم مطابقت خاصيت رشته اي با منطقي صادر ميشه. كاري كه من خواستم بكنم (همون درو زدن!!!) اين بود كه يه Columns مجازي درست كنم بدونه اينكه به جدول بانك اطلاعاتي متصل باشه. يعني:


DataGrid1.Columns.Add(2).Caption = "وضعيت تاهل"

و اين دفعه كد اول رو اينجوري تغيير بدم:


Select Case Adodc1.Recordset.Fields("weddingStatut").Value
Case 0:
DataGrid1.Columns(2).Text = "مجرد"
Case 1:
DataGrid1.Columns(2).Text = "متاهل"
End Select

اما اين دفعه پيغام خطايي داد كه برام غير قابل باور بود. يعني هيچ جوري تو مغزم proccess نميشد(!!)
حتي با اين كد هم تست كردم بازهم نشد:


DataGrid1.Columns(2).Value= "مجرد"
.
.
.

دوستان اگر كسي تونست كاري كنه كه اين Columns شماره 2 رو در DataGrid بدون اتصال به فيلدي در جدول بانك اطلاعاتي مقداردهي بشه خوب يعني تونسته ديگه....

m_vb1386
سه شنبه 12 آذر 1387, 07:20 صبح
اينجا رو ببينيد
http://barnamenevis.org/forum/showthread.php?t=130445