PDA

نسخه کامل مشاهده نسخه کامل : مشکل در کد



bluesky_ns
14-11-2009, 20:26
مشکل این کد کجاست

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید[/quote]

MTPROG
15-11-2009, 09:14
یکم زیادی کد گذاشتی که غیر قابل استفاده است مثلا

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

و یا


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از این دو بخش هیچ استفاده ای نشده.




در کل اگه خطایی میده خطا رو ذکر کنید.

bluesky_ns
15-11-2009, 17:33
خطا نمیده فقط کاری رو که من میخوام انجام نمیده من میخوام مقادیر ستون یک رو باهم جمع کنه و مقادیر ستون دوم رو هم همینطور و سپس اونها رو از هم کم کنه و مقدار اون رو در ستون سوم قرار بده

IP007
15-11-2009, 17:46
ببخشید ، من کدتونو نخوندم ، اگه میخواین کارایی که انجام میدین رو database تاثیر داشته باشه باید برنامه رو در حالت Release اجرا کنین

bluesky_ns
16-11-2009, 16:51
میشه بیشتر توضیح بدید

bluesky_ns
24-11-2009, 16:07
از اساتید کسی نیست که کمک کنه:41:

_H2_
24-11-2009, 19:10
سلام
کدهای شما زیاد جالب توجه نیستند و کمی متداخل هستند و اشتباهات زیادی هم دارند.

کدهای پیشنهادی:
برای استخراج مقادیر از دیتابیس:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

اولی دو مقدار مجزا را میخواند و دومی فقط یک مقدار را میخواند که بهینه تر است.

=====

برای درج دیتای جدید:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در اولی فرض شده که دو فیلد شما متنی هستند و یک فیلد Autonumber هم در جدول دارید.

در دومی فرض شده هر دو فیلد عددی عادی هستند.

=====

اگر هم بخواهید نتیجه یک دستور SQL را در دستور SQL دیگری استفاده، معمولاً نیازی به انتقال در داخل کدها نیست و میتوان خود دستورات SQL را برای اینکار اصلاح کرد.

bluesky_ns
28-11-2009, 20:40
از راهنماییتون ممنونم من از کدهای شما به این صورت استفاده کردم ولی وقتی میخوام در قسمت select شرط بزارم خطای constant expression is requrid رو میده

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
29-11-2009, 01:15
سلام

ولی وقتی میخوام در قسمت select شرط بزارم خطای constant expression is requrid رو میده
دستوری که من الآن در بالا میبینم ایراد خاصی ندارد.
(البته من کدهایم را در دو رویه مستقل نوشته بود و شما میتوانید dbCon را یکبار New و Open کنید و دوبار استفاده کنید، مشکلی ندارد)

شما باید کدهای مشکل دارتان را که خطا میدهد اینجا قرار دهید تا ایرادش را بتوان متوجه شد.
(همان کدی که میگوید شرط برایش گذاشته اید)

bluesky_ns
29-11-2009, 16:05
راستش رو بخاین من برنامرو بدون شرط اجرا کردم و هیچ خطایی نمیده ولی فقط مقدار صفر رو برمیگردونه
کدی که خطا میگیره

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
29-11-2009, 16:50
سلام

Const SQL_SELECT As String = "SELECT SUM(nom1)-SUM(nom2) FROM table2 where id= '" & TextBox1.Text & "' "
حالا مشخص شد!
شما در Const از متغییر استفاده کرده اید و طبیعتاً خطای constant expression is requrid را دریافت میکنید.

کد صحیح:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

البته کد فوق در صورت خالی بودن TextBox به خطا خواهد خورد (باید تعویض DBNull رویش اعمال شود.)

bluesky_ns
29-11-2009, 17:38
سلام ممنونم مشکل شرط حل شد ولی مشکل قبلی هنوز حل نشده من کدهای بالا رو اجرا میکنم و تنها تغییری که در بانکم ایجاد میشه اینه که یک سطر که تمام فیلدهای اون null هستند ایجاد میشه و فقط فیلد num3 مقدار صفر رو نشون میده
راستش برنامه من در مورد محاسبه مانده بر اساس پرداخت و در یافت است و من میخوام یک ستون مربوط به مانده در جدولم داشته باشم تا هر وقت که بخوام از اطلاعات گزارش بگیرم ممنونم

bluesky_ns
30-11-2009, 16:04
از اساتید کسی نیست کمک کنه:41:

_H2_
01-12-2009, 11:49
سلام

تنها تغییری که در بانکم ایجاد میشه اینه که یک سطر که تمام فیلدهای اون null هستند ایجاد میشه و فقط فیلد num3 مقدار صفر رو نشون میده
جواب همان است.
دقت خودتان را بیشتر کنید.
معمولاً یک اشتباه کوچک خنده دار میتواند کار را خراب کند.

به نوع فیلدها و مقداری که میدهید هم دقت کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

در صورت عدم حل مشکل، در صورت امکان کدتان را آپلود کنید.

bluesky_ns
01-12-2009, 16:00
این دقیقا کدهایی هست که من به کار میبرم

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

_H2_
01-12-2009, 19:33
سلام

این دقیقا کدهایی هست که من به کار میبرم
خوب چه مشکلی دارد؟؟؟
این کد باید فقط یک سطر جدید با مقدار nom3 صفر به جدولتان اضافه کند. انتظار دیگری دارید؟؟؟

=====

شما (SUM(nom1)-SUM(nom2 را فقط برای سطرهایی با id مشخص اجرا کرده اید و نتیجه را در iResult ریخته اید.

بعددر مرحله دوم دستور INSERT داده اید و فقط یک فیلد nom3 آن را پر کرده اید که در داخل این nom3 در برنامه عدد صفر قرار دارد!
هیچ فیلد دیگری را مقدار دهی نکرده اید و nom3 را هم حتی پر نکرده اید و صفر باقی مانده!
(نمیدانم شاید میخواستید نتیجه iResult ار در nom3 بریزید که انجامش ندادید؟؟؟)

=====

یک سوال!
فیلد id جدول table2 تان نوعش چیست؟ عددی است یا متنی یا ... ؟
فیلد nom3 جدول table2 تان نوعش چیست؟ عددی است یا متنی یا ... ؟

چندین بار تاکید کردم که نوع فیلد مهم است.
اگر این فیلدی عددی باشد باید به جای NVarChar از نوعی مثل Int استفاده و به آن عدد هم بدهید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید


در مقابل اگر متنی باشند میتوانید از نوعی مثل NVarChar استفاده کنید ولی باید متن هم به انها بدهید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

شما الآن نوع nom3 در کدهای VB.Net تان Integer است که عددی است ولی از NVarChar استفاده کرده اید که متنی است.
کدتان اجرا میشود ولی اینت کار تضمین و اعتبار ندارد.
یا باید به جای nom3 برای پرکردن فیلد از nom3.ToString استفاده کنید و یا به جای NVarChar از Int استفاده کنید.