مشاهده نسخه کامل
: getdate
تابع (getdate) رو برای یکی از فیلدای بانکم (sql server)قرار دادم ولی هر دفعه که داده بهش میدم
کل فیلد رو تغییر میده و برای تمام رکوردها تاریخ فعلی رو برمیگردونه در صورتیکه مگه نباید با هر دفعه ورود اطلاعات تاریخ جاری خودش رو ذخیره کنه و به تاریخهای قبلی کاری نداشته باشه؟
Reticent
04-11-2006, 17:18
تصور نمیکنم سوال شما ربطی به قسمت net. داشته باشه، با این حال توضیح میدید که منظورتون از قرار دادن تابع getdate برای یکی از فیلدهای بانکتون چیه؟ یعنی شما هر بار هنگامی که دستور INSERT رو اجرا میکنید، تابع getdate رو به عنوان یکی از فیلدها بهش میفرستید؟
میتونید ساختار جدول و query رو این جا بنویسید؟
ایلیا
تصور نمیکنم سوال شما ربطی به قسمت net. داشته باشه، با این حال توضیح میدید که منظورتون از قرار دادن تابع getdate برای یکی از فیلدهای بانکتون چیه؟ یعنی شما هر بار هنگامی که دستور INSERT رو اجرا میکنید، تابع getdate رو به عنوان یکی از فیلدها بهش میفرستید؟
میتونید ساختار جدول و query رو این جا بنویسید؟
ایلیا
ممنون اون مشکلم حل شد ولی یه مشکل دیگه دارم
Cast from type 'DBNull' to type 'Integer' is not valid.این ارور چطور رفع میشه؟
زمانیکه پارامتر ورودیم رو nchar میدم این ارور رو میده?زمانیکه سام یه فیلد خاص رو با توجه به نامی که کاربر وارد میکنه به دست بیارم
Reticent
06-11-2006, 14:28
مقدار برگشتی از queryتون null هستش، به خاطر همین نمیتونید به عدد صحیح castاش کنید. میتونید قبل از cast کردن چک کنید ببینید مقدار برگشتی DBNull هست یا نه. اگه query و code قسمتی که توش exception میده رو بذارید، بیشتر میتونم کمک کنم.
ایلیا
مقدار برگشتی از queryتون null هستش، به خاطر همین نمیتونید به عدد صحیح castاش کنید. میتونید قبل از cast کردن چک کنید ببینید مقدار برگشتی DBNull هست یا نه. اگه query و code قسمتی که توش exception میده رو بذارید، بیشتر میتونم کمک کنم.
ایلیا
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
زمانیکه به جای فیلد دکتر از فیلد کد که int هست استفاده میکنم کار میکنه
ممنون
Reticent
07-11-2006, 11:50
به خاطر این نیست که شما myparam رو گرفتید، directionاش رو هم درست تنظیم کردید، ولی موقعی که خواستید summ رو به command اضافه کنید، یه چیز دیگه اضافه کردید؟
فکر میکنم کدتون باید به این شکل باشه:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و اون myparam هم توی کد شما اضافه است.
ایلیا
از اینکه وقت میذارید جواب میدید ممنونم
اون ارور رو نمیده ولی جواب هم نمیده
ببینید من میخوام کاربرم نام هر پزشکی رو که از combobox انتخاب میکنه sumهمون رو ببینه
این کارو با انتخاب کد پزشک توسط کاربر تونستم انجام بدم با همون کدی که دیدید ولی وقتی در query فیلد انتخابیم رو از کد پزشک با نوع int به نام پزشک با نوع nchar تغییر میدم اون ارور رو میده
Reticent
08-11-2006, 11:23
خواهش میکنم! فکر میکنم اشکال از encoding باشه چون حدس میزنم اسم پزشکها فارسیه. نه؟
این خط رو بعد از مقدار دادن به Direction اضافه کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تصور میکنم با این حل بشه. اگر مشکل حل نشد، پیشنهاد میکنم از همون کد پزشک استفاده بکنید. میتونید برای هر گزینهای که در ComboBox قرار میدید، Text رو نام پزشک و Value رو کد پزشک مقداردهی کنید و SelectedValue رو به StoredProcedure بفرستید.
ایلیا
درسته نام پزشک فارسیه
کد نهایی :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
زمانیکهinputoutput باشه این ارور رو میده :
Formal parameter '@summ' was defined as OUTPUT but the actual parameter not declared OUTPUT.
که با قرار دادن بصورت returnvalue درست میشه
و در نهایت این ارور رو میده:
Procedure 'paccount' expects parameter '@summ', which was not supplied.
چرا؟
روحیه خوبی دارم ؟از رو نمیرم!!!!
Reticent
09-11-2006, 15:47
شما دارید دو تا چیز رو با هم قاطی میکنید! وقتی یه چیزی رو با Return از توی Stored Procedure بر میگردونید، لازم نیست پارامتر باشه. Output Parameter یه چیز دیگه است. چطور من اصلا به این دقت نکردم؟ Summ رو از توی پارامترهاتون حذف کنید و توی Stored Procedure، به صورت متغیر (نه پارامتر) تعریفش کنید.
توی کد هم Stored Procedure رو به صورت ExecuteScalar به جای ExecuteReader اجرا کنید و مقدار برگشتی از Stored Procedure رو از اون بگیرید.
یا این که ExecuteNonQuery کنید و یه پارامتر از نوع ReturnValue بگیرید و بعدا مقدارش رو از طریق cmd1.Parameters["summ"].Value بگیرید. ExecuteReader برای موقعی خوبه که مقدار برگشتی مجموعهای از سطرها باشه.
دلیلی هم نداره که از رو برید! من خوشحال میشم کمک کنم. :)
ایلیا
ممنمون شما لطف داريد
ببينيد ميخوام sum رو با ----- نام پزشک(فارسي) و محدوده تاريخی که کاربر وارد میکنه بدست بيارم و در
اختيار ش بذارم و علاوه بر اون با توجه به هر درصدي که کاربر وارد کرد بتونه اعمال شده درصد ورودي در sum رو هم به عنوان خروجي دريافت کنه.
با انجام تغييرات شما ممکنه؟
ميگم به جاي تحليل کد ناقص و احيانا غلط من ممکنه(لطفا) يه شبه کد با توضيحاتي که دادم برام ارسال کنيد.
متشکرم.
Reticent
11-11-2006, 11:12
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حل شد؟ :)
ایلیا
حل نشد
نه error میده نه جواب !!به صورت کاملا منفعل فقط run میشه
مشکلش چیه؟
Reticent
11-11-2006, 17:02
اگه doctorr رو یک SqlParameter بگیری و بهش تایپ NChar بدی و بعد به cmd1 اضافه کنی چی؟ (مثل اون کاری که قبلا اشتباهی برای summ کردیم).
اگه این جوری هم حل نشد، میتونی یه Backup از Database و یه مقداری از کد برنامهات که بشه اجرا کرد رو یه جایی upload کنی (مثل rapidshare) تا من یه کم debugاش کنم؟ دیگه داره ناموسی میشه این مشکل ها!
ایلیا
upload کردم
.
Download-Link #1: [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
امیدوارم درست بشه :sad: :sad:
ممنون
Reticent
16-11-2006, 14:44
دوست عزیز، اون کاری که آخر سر گفتم رو چک کردین؟ در ضمن Backup از Database رو upload نکردین.
ایلیا
Reticent
28-11-2006, 17:12
آقا من سرم یه کم شلوغ شده، هنوز نرسیدم برنامهی شما رو چک کنم!
ایلیا
Reticent
04-12-2006, 15:16
کجا بود؟
ایلیا
در نوع فيلد كه به varchar تغییر کرد ،در stored proc هم نیاز به return نبود و در code هم مثل قبل فقط با خذف direction .
راستی میدونید
زمانیکه توسط یک query سرچ روی دیتابیس انجام میشه چطور میشه نتیجه سرچ رو در یک دیتاگرید نمایش داد؟
نتیجه کد زیر رو علاوه بر txtbox در دیتاگرید هم بریزه
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ممنون
Reticent
07-12-2006, 09:27
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
ایلیا
vBulletin , Copyright ©2000-2024, Jelsoft Enterprises Ltd.