PDA

View Full Version : سوال: استفاده از count در برنامه



یک دوست
جمعه 07 تیر 1387, 23:42 عصر
سلام دوستان
من برنامه رو به sql server 2000 وصل کردم تو برنامه در قسمت select برنامه می خوام که count یک ستون رو بهم بده وقتی که اون رو اجرایی می کنم ومقدار خروجی select رو تو یه متغییر می ریزم از همین count اشکال می گیره واز برنامه می آید بیرون
اگر کسی می دونه مشکل چیه وچه جوری میشه حلش کرد خوشحال می شم کمکم کنه
ممنون

kablayi
شنبه 08 تیر 1387, 00:44 صبح
سلام ...
اول خوشامد میگم امیدوارم که تو کارتون موفق باشید و از اعضای فعال این سایت باشین ...
عرض کنم شما بایستی دیتا تایپ فیلدتون که استخراج میشه با متغیرتون یکی باشه ...
خوب شما از count استفاده کردید و یه عدد integer خروجیه پس باید متغیرتون هم از همین نوع باشه ...
البته چون کدتونو نذاشتین اینجوری حدس زدم که باشه ...

موفق باشید ...

یک دوست
شنبه 08 تیر 1387, 09:40 صبح
سلام دوست من
ممنون از راهنمایی تون
ولی فکر می کنم مشکل از جای دیگه باشه یعنی اصلا کار به اینجا نمی رسه که از یکی نبودن نوع متغییر ها اشکال بگیره بلکه در همون جایی که می خواهد دستور رو اجرایی کنه از برنامه می آید بیرون و errorمی ده و از count اشکال می گیره

NewFoxStudent
شنبه 08 تیر 1387, 09:43 صبح
بهتره کد برنامتون رو برای بررسی بزارید اینجا

aliila
شنبه 08 تیر 1387, 09:55 صبح
آیا در دیتا تیبل شما فیلدی بایک type مشخص جهت پرشدن با این ستون count هست این مشکل از نوع فیلد count در sql و type که وی بی در دیتا تیبل به آن نصبت میدهد است

samispeed
شنبه 08 تیر 1387, 12:06 عصر
شما باید کد قسمتی که از آن اشکال می گیرد را قرار بدهید ولی در کل برای بدست آوردن count یک ستون از دستور زیر می توانید استفاده کنید



sqlcom.commandtext= " select count(x) as mx from tblfrm"
dr=sqlcom.executereader()
if dr.read() then
textbox1.text=dr("mx")
end if


که x نام ستون مورد نظر که به mx تغییر نام داده است و tblfrm نام جدول می باشد
dr از نوع datareader و sqlcom از نوع sqlcommand می باشد

kablayi
دوشنبه 10 تیر 1387, 00:15 صبح
سلام ...


شما باید کد قسمتی که از آن اشکال می گیرد را قرار بدهید ولی در کل برای بدست آوردن count یک ستون از دستور زیر می توانید استفاده کنید



sqlcom.commandtext= " select count(x) as mx from tblfrm"
dr=sqlcom.executereader()
if dr.read() then
textbox1.text=dr("mx")
end if


که x نام ستون مورد نظر که به mx تغییر نام داده است و tblfrm نام جدول می باشد
dr از نوع datareader و sqlcom از نوع sqlcommand می باشد

البته جسارت نشه ولی کد ایشون اشتباهه ...
اگر قرار باشه چنین کاری انجام بدین اینجوری بنویسید ... :


sqlcom.commandtext= " select count(x) as mx from tblfrm"
dim intCOUNT as integer =sqlcom.executescalar()
textbox1.text=intCOUNT.tostring
end if

samispeed
دوشنبه 10 تیر 1387, 08:28 صبح
کد اشتباه نیست جواب درست رو بر می گردوند می توانید امتحان بکنید
شما هنوز نمی دونید که می شود کد را به شکل های متفاوت نوشت فرق این دو تا دستور هم در این است که در اولی یک recordset بر می گرداند و در دومی value بر می گرداند
مثل این است که بگیم من فقط با while برنامه نویسی می کنم و از هیچ نوع حلقه تکرار دیگه استفاده نمی کنم
خوب ایراد دیگران را بگیریم اما خوب نگاه کنیم بعد ایراد بگیریم

kablayi
دوشنبه 10 تیر 1387, 23:59 عصر
کد اشتباه نیست جواب درست رو بر می گردوند می توانید امتحان بکنید
شما هنوز نمی دونید که می شود کد را به شکل های متفاوت نوشت فرق این دو تا دستور هم در این است که در اولی یک recordset بر می گرداند و در دومی value بر می گرداند
مثل این است که بگیم من فقط با while برنامه نویسی می کنم و از هیچ نوع حلقه تکرار دیگه استفاده نمی کنم
خوب ایراد دیگران را بگیریم اما خوب نگاه کنیم بعد ایراد بگیریم

سلام ...
دوست عزیز اگر دقت کرده باشین و این کوئری در هر حالت فقط یه جوابو بر میگردونه ... :چشمک:
مثل اینه که آدم بیاد لقمرو دور سرش بگردونه بعد اونو بوخوره ... :گیج:
خوب عزیزم تو این شرایط چرا باید یه شرطو چک کنیم و پای دیتا ریدرو بیاریم وسط ...؟؟؟؟؟؟؟؟ :متعجب:


موفق باشید ...

samispeed
سه شنبه 11 تیر 1387, 11:04 صبح
اگر بخواهیم همراه این count(x) یک فیلد دیگه هم باشه اونوقت از executescalar()
استفاده می کنید یا executereader() ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

kablayi
سه شنبه 11 تیر 1387, 11:17 صبح
اگر بخواهیم همراه این count(x) یک فیلد دیگه هم باشه اونوقت از executescalar()
استفاده می کنید یا executereader() ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

سلام ...
دوست عزیز من قصد جسارت به شما رو نداشتم ...
شما درست می فرمائید ولی بحث الان اینه که ما فقط قراره تعداد رکوردها رو برگردونیم ... یعنی یک متغیر ...!!!!
آره اگر قرار بود چند فیلد رو برگردونیم حرف شما صحیح بود ... ولی قراره که فقط یه مقدار برگردونده بشه ....

اگر جسارتی کردم ببخشید ...

موفق باشید ...