PDA

View Full Version : چک کردن مقدار موجود در جدول



night11
دوشنبه 26 دی 1384, 16:52 عصر
سلام

من می خواستم وقتی داده ای رو وارد جدول می کنم اگه قبلا ثبت شده باشه اخطار داده بشه و و اگر ثبت نشده باشه ثبت بشه . این کار رو در سطح برنامه می خوام انجام بدم و بصورت دستی .
ممنون میشم اگه کمک کنید.
موفق باشید .

amir_3530
سه شنبه 27 دی 1384, 15:14 عصر
سلام
شما بهید مقدار جدیدی که می خواهید وارد کنید با همه سطر های جدول چک کنید
اگر این مقدار بود پیغام بده با یک حلقه For همچین کاری را انجام دهید

reza_rad
سه شنبه 27 دی 1384, 15:23 عصر
توی خود sql هم دستوراتی برای چک کردن وجود داره exists و ... ولی از راهی که دوستمون گفت هم میشه یعنی با حلقه چک کنی.

night11
سه شنبه 27 دی 1384, 18:17 عصر
مرسی از راهنماییتون .

امتحان می کنم !

مطهر
سه شنبه 27 دی 1384, 19:24 عصر
توی خود sql هم دستوراتی برای چک کردن وجود داره exists و ...
اینو یه کم توضیح بده

reza_rad
چهارشنبه 28 دی 1384, 09:35 صبح
خوب می تونی توی sql از دستورات شرطی یه کم استفاده کنی. مثلا:
if exists (select postalcode from authors
where postalcode = "94705")

reza_rad
چهارشنبه 28 دی 1384, 09:36 صبح
این هم برای مطالعه بیشتر:
http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/39091

night11
چهارشنبه 28 دی 1384, 12:41 عصر
به جز این راهها ، راه دیگه نیست ؟
مثلا با یک select
نتیجه یک query یا درست هست یا غلط ، اینو چطوری میشه چک کرد ؟
اگه امکان داره یه مثال بزنیند !
ممنون

reza_rad
چهارشنبه 28 دی 1384, 13:34 عصر
نتیجه query که غلط نمیشه.منظورت فکر کنم اینه که یا دیتا برمی گردونه یا نال میشه.
که می تونی با همون hasrows چکش کنی.البته باز هم sql دستوراتی داره که بتونی اینکار رو انجام بدی مثلا می تونی با دستور if,true,false کار کنی این هم یه مثال از جملات شرطی با sql :

strPrerequisite="SELECT IF ("
+" ("
+" SELECT count( * ) "
+" FROM "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"prerequisite"
+" WHERE course_base_id = '"+strCourseBaseId+"'"
+" ) "
+"="
+" ( "
+" SELECT count( DISTINCT "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course_base.id ) "
+" FROM "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"prerequisite"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course_base"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course"
+" LEFT OUTER JOIN "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students "
+"ON "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course.id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students.course"
+" LEFT OUTER JOIN "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user "
+"ON "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user.id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students.userid"
+" WHERE "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course_base.id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course.course_base_id "
+"AND ("
+" "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students.userid = '"+drpdUser.SelectedValue+"' "
+"OR "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students.userid IS NULL "
+" ) "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"course_base.id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"prerequisite.prerequisite_id "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"prerequisite.course_base_id = '"+strCourseBaseId+"' "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"user_students.final_mark > "
+"( "
+" SELECT "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level_statics.value"
+" FROM "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"statics"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level_statics"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum"
+", "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum_presented"
+" WHERE "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum_presented.curriculum_id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum.id "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum.level_id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level.id "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level_statics.level_id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level.id "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"level_statics.statics_id = "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"statics.id "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"curriculum_presented.id = '"+drpdCurriculum.SelectedValue+"' "
+"AND "+ConfigurationSettings.AppSettings["tblPrefix"].ToString()+"statics.name = 'min_accept_grade' "
+") "
+") , 'true', 'false'"
+" ) AS pass ";

اَرژنگ
چهارشنبه 28 دی 1384, 13:54 عصر
سلام

من می خواستم وقتی داده ای رو وارد جدول می کنم اگه قبلا ثبت شده باشه اخطار داده بشه و و اگر ثبت نشده باشه ثبت بشه . این کار رو در سطح برنامه می خوام انجام بدم و بصورت دستی .
ممنون میشم اگه کمک کنید.
موفق باشید .
اول با
Select count(*) where Condtion
پیدا کنید هیچ رکوردی با مشخصاتی که میخواهید اضافه کنید وجود دارد. مثلاً در یک فانکشن که بولییَن بر میگردونه.

Bِدش اگر رکورد وجود نداشت از Insert استفاده کنید.
۳ خط بیشتر نمیشه.

night11
پنج شنبه 29 دی 1384, 11:32 صبح
نتیجه query که غلط نمیشه.منظورت فکر کنم اینه که یا دیتا برمی گردونه یا نال میش


بله حق با شماست ، منظور من همین بود .;)

ممنون از لطف شما.

ارژنگ عزیز از شما هم ممنونم .

soosan
دوشنبه 03 بهمن 1384, 11:39 صبح
میتونی ستون مورد نظر رو با یکdataAdapter select کنی و در یک dataSet بریزی . بعد با یک for در dataSet بگردی و با مقدار ورودی مقایسه کنی