PDA

View Full Version : سوال: در مورد جمع کردن تمام خانه های یک ردیف در SQL



omidghadiri
پنج شنبه 10 مرداد 1387, 01:14 صبح
با عرض سلام خدمت مدیران محترم سایت و تمامی دوستان عزیز

برای مثال پروِژه ای که نرم افزار رستوران هست قرار هست به عنوان مثال در یک جدول که یکی از فیلدهاش قیمت هست

سئوال اول

قصد دارم تمام خانه هائی که تو جدول پر کردیم در قسمت قیمتش همشون رو جمع کنه و داخل یک تکست باکس نشونم بده

***ویرایش شده توسط مدیر***

لطفا کمک کنید

با تشکر

amirzazadeh
پنج شنبه 10 مرداد 1387, 08:47 صبح
براي قسمت اول سئوالت از اين كد ها ميتوني استفاده كني:

Dim cell As DataGridViewCell
Dim amountAs Decimal
'Dim invoiceTotal As Decimal
For Each row As DataGridViewRow In SubpscDataGridView.Rows
cell = row.Cells(6)
amount += CDec(cell.Value)

Next
بعد ميتوني نتيجه رو توي يك تكست باكس بريزي

tot.Text = FormatCurrency(amount, 0)
براي قسمت دوم سئوالت هم ميتوني از همين متد استفاده كني فقط كد قرمز رو بااين عوض كن

amount += 1

baran_mehr
پنج شنبه 10 مرداد 1387, 09:33 صبح
سلام داداشم omidghadiri جان.
اگه منظورت اینکه اطلاعاتت تو یک دیتاگرید هست و میخوای این کارها رو کنی که دوست خوبمون amirzazadeh جان براتون توضیحش رو نوشتن.
اما اگر منظورت خود جدول تو دیتابیس هست و میخوای با دستورات Sql کار کنی :
برای بدست آوردن جمع سطرهای یک ستون یا یک فیلد میتونی از دستور زیر استفاده کنی

Select Sum("نام فیلد") From "نام جدول"
من نمیدونم از چه روشی استفاده میکنی یعنی با کد نویسی به دیتابیس متصل میشی و کار میکنی یا با شئ
اما در هر حال بعدش میتونی مقدار برگشتی رو به TextBox بفرستی
اما برای تعداد سطرها هم میتونی از این کد استفاده کنی:

Select count("نام فیلد") From "نام جدول"

omidghadiri
پنج شنبه 10 مرداد 1387, 17:56 عصر
سلام دوست عزیز

با عرض پوزش این کدهائی که شما قرار دادید . عمل نکردن
امکانش هست کمی واضح تر توضیح بدید اگر این لطف رو در حق بنده بکنید که به طور واضح توضیح بدید کمال تشکر رو از شما دارم
( لازم به ذکر هست که بنده از SQL Server2005 استفاده نمیکنم بلکه از خود SQL وی بی( Visual Studio.net) استفاده میکنم و کدی رو که تو ویژوال کارائی داره رو لطف کنید )

باتشکر

omidghadiri
پنج شنبه 10 مرداد 1387, 18:03 عصر
زمانی که برنامه اجرا کردم در این خط کد cell = row.Cells(12)
چنین پیغام خطائی رو دارد:
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
مشکل از کجا هست؟

omidghadiri
پنج شنبه 10 مرداد 1387, 19:49 عصر
از دوستان خوبم Amirzazadeh و Baran_mehr کمال تشکر رو دارم ولی کدهائی که شما لطف کردید عمل نکردن
با تشکر از شما. لطفابیشتر کمکم کنید
با تشکر

baran_mehr
پنج شنبه 10 مرداد 1387, 23:30 عصر
سلام داداش خوشگلم omidghadiri جان.
منظورم از کد نویسی پایگاه داده این بود که به چه صورت به پایگاه داده خودت وصل میشی اما برای اینکه بهتر متوجه بشی یه نگاهی به این لینک بکن من طرز ارتباط به یه جدول اکسس را با کد نویسی گذاشتم و یه توضیح مختصر دربارش داده:
http://barnamenevis.org/forum/showthread.php?t=107221
تو این لینک یه دستور Select اجرا میشه و نتیجش درون یک گریدویو ریخته میشه.داداشی تو بجای اون دستور Select خودت رو بنویس مثلا :

cmd.CommandText=Select Sum("نام فیلد") From "نام جدول"
نمیدونم چقدر این مطلب برات مفید باشه اما اگر مشکلی پیدا کردی بگو گلم.

رضا جاسبی
جمعه 11 مرداد 1387, 00:35 صبح
در مورد پیغام خطای Out of Index بررسی کنید ببینید تعداد ستونهای Query که نوشتی چند تاست.
احتمالا تعدادش کمتر از 12 باید باشه که در کدت نوشتی. در واقع باید شماره ستون رو در گریدت اونجا قرار بدی. در مورد تعداد هم احتمالا گرید باید مشخصه تعداد داشته باشه.
البته من بیشتر با نظر baran_mehr موافقم که با دستورات sql مقدارهای مورد نظرت رو بدست بیاری.