PDA

View Full Version : سوال در مورد شرط در select



نیما حتمی
شنبه 31 اردیبهشت 1390, 13:04 عصر
با سلام

من در جدولم 15 فیلد دارم که کاربر در یک فرم پر میکنه و کاربر باید در لحظه اطلاعات را چه ناقص و چه کامل ذخیره کنه.حالا یک فرم دیگه طراحی شده که در آن باید اطلاعاتی که ناقص وارد شده را در یک گرید با ذکر اینکه (کدام فیلد ناقص وارد شده است)نمایش داده شود.منظور از ناقص اینه که آیا فیلدها پر شده اند یا نه.یعنی اگه فیلدی توسط کاربر پر نشده بود این اتفاق بیفته.حالا چطور بگم بیاد کل جدول رو چک کنه اون فیلدی که پر نشده رو پیدا کنه و بگه کدومه(دستوری که در select باید بنویسم چیه؟)
این کدیه که من نوشتم ولی جواب نمی ده:


if (checkBox1.Checked == true)
condition += "and (yearDateDoc Between '" + Convert.ToInt32(textBox1.Text) + "' AND '" + Convert.ToInt32(textBox2.Text) + "')";
if (checkBox2.Checked == true)
condition += "and (DateDoc Between '" + dateBox1.TextDate + "' AND '" + dateBox2.TextDate + "')";
if (checkBox3.Checked == true)
condition += "and (NumReceipt Between '" + Convert.ToInt32(textBox3.Text) + "' AND '" + Convert.ToInt32(textBox4.Text) + "')";
if (checkBox4.Checked == true)
condition += "and PosationDoc = '" + comboBox1.Text + "'";
if (checkBox5.Checked == true)
condition += "and (CodeUser Between '" + Convert.ToInt32(textBox5.Text) + "' AND '" + Convert.ToInt32(textBox6.Text) + "')";
SqlDataAdapter r = new SqlDataAdapter("select * from EmissionDoc where AccCode='' And Center1='' And Center2='' And Center3='' and DocAccount='' and ArzKind=''And Amount='' and Debtor='' and Creditor=''and NumPey =''and Datepey ='' and NumOrder='' and " + condition, connect);
DataTable t1 = new DataTable();
r.Fill(t1);
دوستان قابل ذکره که من تحت یک شرایطی که کاربر تعیین میکنه میخوام این اتفاق بیفته که در کد بالا نوشتم.ممنونم اگه کمکم کنین

نیما حتمی
شنبه 31 اردیبهشت 1390, 14:56 عصر
دوستان عزیز ،برنامه نویسان با تجربه کسی نیست بتونه به من کمک کنه؟

veniz2008
شنبه 31 اردیبهشت 1390, 15:53 عصر
سلام،چرا داخل دستور select از And استفاده کردی؟،ممکنه که فقط یک فیلد رو کاربر پر نکرده باشه و خالی باشه،از OR استفاده کن شاید جواب بگیری.موفق باشی

نیما حتمی
شنبه 31 اردیبهشت 1390, 16:14 عصر
بله اونو درست کرده بودم اشتباها در تایپیک درج شده.نه دوست عزیز درست نشد.

لطفا اگر کسی میتونه یاری کنه

Reza_Yarahmadi
شنبه 31 اردیبهشت 1390, 19:22 عصر
اول اینکه بجای AND کردن شرطها باید اونها رو OR کنید چون ممکنه بعضی از فیلدها پر باشه و بعضی از اونها خالی(طبق شروط شما همه فیلدها باید خالی باشه تا نمایش بده). با تابع ISNULL در صورت Null بودن فیلدها اونو با '' تغییر بدید و با مقدار '' مقایشه کنید.
در کل بصورت زیر میشه
Select *
From EmissionDoc
Where
ISNULL(AccCode, '') = ''
OR
ISNULL(Center1, '') = ''
OR
ISNULL(Center2, '') = ''
OR
....

نیما حتمی
یک شنبه 01 خرداد 1390, 12:01 عصر
ممنونم از پاسختون.ولی من میخوام بگه در کدوم سطر کدوم سلول خالی است.مثلا فرض کنید بعد از اعمال فیلتر 5 سطر در گرید نمایش داده بشه و هر 5 سطر 5 سلول خالی داشته باشه که در این حالت باید تعداد سطرهای گرید 25 سطر شود که در هر سطر در سلول شرح اشکال ،مشکل اون سطر نمایش داده شود.(مثلا سطر اول کد وارد نشده،سطر اول نام وارد نشده و....... )اینم عکس برنامه:70203