PDA

View Full Version : سوال: وجود یا عدم و جود رکورد در دیتا بیس



mammad_kami
دوشنبه 23 اردیبهشت 1387, 09:56 صبح
سلام.
می خواستم ببینم:متفکر: چطوری می تونم وجود یا عدم وجود یک رکورد توی دیتا بیسو بررسی کنم بطوری که مثل if عمل کنه یعنی اگه وجود داشت کار 1 وگرنه کار 2 رو انجام بده.
با تشکر.

KavoshGar_ir
دوشنبه 23 اردیبهشت 1387, 11:47 صبح
سلام.
می خواستم ببینم:متفکر: چطوری می تونم وجود یا عدم وجود یک رکورد توی دیتا بیسو بررسی کنم بطوری که مثل if عمل کنه یعنی اگه وجود داشت کار 1 وگرنه کار 2 رو انجام بده.
با تشکر.
کافیه یک select بزنی به جدول داخل دیتابیس و نتایج را داخل یک دیتاتیبل یا دیتاست بریزی!
در آخر هم تعداد رکوردهای دیتاتیلت را چک کنی اگر رکوردی داخل تیبلت بود شرط اجرا بشه

مثلا dt.Rows.Count >0 .... رکورد موجوده پس ....

از طریق دستورات Sql هم می تونی بدست بیاری! به طور کلی روشهای زیادی وجود داره ....

my_blithe
دوشنبه 23 اردیبهشت 1387, 11:51 صبح
شما از طریق ویزارد های VS هم می تونید همین کار رو کنید . اگه دقت کرده باشید توی form view و گرید ویو و .... یک edit theme هست به نام Empety که توی اون می تونی اتفاقی که قراره وقتی رکوردی وجود نداشته باشه رو قرار بدی....

mammad_kami
سه شنبه 24 اردیبهشت 1387, 13:19 عصر
کافیه یک select بزنی به جدول داخل دیتابیس و نتایج را داخل یک دیتاتیبل یا دیتاست بریزی!
در آخر هم تعداد رکوردهای دیتاتیلت را چک کنی اگر رکوردی داخل تیبلت بود شرط اجرا بشه

مثلا dt.Rows.Count >0 .... رکورد موجوده پس ....

از طریق دستورات Sql هم می تونی بدست بیاری! به طور کلی روشهای زیادی وجود داره ....

می خوام وجود یک رکورد خاصو بررسی کنم.

mammad_kami
سه شنبه 24 اردیبهشت 1387, 13:24 عصر
شما از طریق ویزارد های VS هم می تونید همین کار رو کنید . اگه دقت کرده باشید توی form view و گرید ویو و .... یک edit theme هست به نام Empety که توی اون می تونی اتفاقی که قراره وقتی رکوردی وجود نداشته باشه رو قرار بدی....


ویزاردی فایده نداره. می خوام ببینم چه طوری باید کدشو بنویسم. ویزاردی کار کردنو کسی که با ویندوزم آشنا باشه میتونه کار کنه مهم کد نوشتنه!
لطفا نظرات کار شناسی تری بدین!

Amir Taghavi
سه شنبه 24 اردیبهشت 1387, 14:16 عصر
خودت داری می گی رکورد خاص!
پس با یک select ساده همراه با where می تونی وجود یا عدم وجودش رو بررسی کنی:

Select Count(*) As Total
Where ...کد بالا رو بصورت scalar بخون. اگه جواب صفر بود که رکورد وجود نداره.

mammad_kami
سه شنبه 24 اردیبهشت 1387, 14:29 عصر
خودت داری می گی رکورد خاص!
پس با یک select ساده همراه با where می تونی وجود یا عدم وجودش رو بررسی کنی:

Select Count(*) As Total
Where ...کد بالا رو بصورت scalar بخون. اگه جواب صفر بود که رکورد وجود نداره.

یک مقدار بیشتر توضیح بدین. چه جوری مثبت یا منفی بودن شرطم رو متوجه بشم.

Amir Taghavi
سه شنبه 24 اردیبهشت 1387, 14:35 عصر
ببین جواب query بالا رو توی متغیری از نوع int بریز. حالا بررسی کن که اون متغیر مقدارش چی هست. اگه صفر بود که رکورد مورد نظر وجود نداره وگرنه که وجود داره. می تونی query بالا رو تبدیل به یک sp کنی (حتما این کار رو بکن) بقیه اش رو هم که خودت بهتر می دونی... اگر نمی دونی با یه search کوچولو هزارتا تاپیک در این مورد (Scalar) می تونی پبدا کنی!

mohsen_metn
سه شنبه 24 اردیبهشت 1387, 14:42 عصر
من یه مثال برات می زنم


SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";
conn.Open();
string SelectUser = "select count (*) from Customers where CompanyName='" + textBox1.Text + "'";
SqlCommand command = new SqlCommand(SelectUser, conn);
int count;
count=command.ExecuteScalar();
if(count!=0)
{
دستورات شما
}

منظور از تکست باکس مقدار مورد نطر شماست

twelve
سه شنبه 24 اردیبهشت 1387, 14:45 عصر
Select Count(*) As Total
Where ...


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