نمایش نتایج 1 تا 14 از 14

نام تاپیک: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

  1. #1
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    با سلام دوستان
    من داخل جدول طبق تصویر زیر
    چندتا فیلد دارم که تعدادی از این فیلدها در بعضی سطرها مقدار دارند
    و بعضی دیگر خالی هستند.
    من میخوام کل این فیلدهایی که مقدار دارند را select کنم


    مشکل اینه زمان چاپ مقدار های خالی هم همراه فیلدهای مقدار دارند select می شود
    و گزارشم را خراب می کنند

    می خوام راهنماییم کنید

    چطوری فقط فیلدهای مقدار دار رو دریافت کنم


    MY TABLE.png


    از این select که استفاده می کنم هیچ چیزی انتخاب نمی شود

                    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = '" + CodeExam + "' AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";



    ممنون میشم راهنماییم کنی

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    73
    پست
    3,578

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    سلام و روز خوش
    کوئری ظاهرش درسته هرچند که بهتره پارامتر تعریف کنین.
    یکی مقدار اون codeexam رو چک کنین، و یکی این که اون دو فیلد دیگه حتما null باشن. شاید مقدارشون white space باشه.

  3. #3
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    461

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    برای جلوگیری از فیلدهای خالی و دریافت فقط فیلدهایی که مقدار دارند ، می‌توانید از عبارت WHERE با استفاده از عملگر IS NOT NULL استفاده کنید. این عبارت به شما امکان می‌دهد فقط سطرهایی را که مقدار دارند را انتخاب کنید. بعنوان مثال:

    SELECT column1, column2, column3
    FROM table_name
    WHERE column1 IS NOT NULL AND column2 IS NOT NULL AND column3 IS NOT NULL;






    ولی با توجه به کدی که ارائه دادید، برای اطمینان از اجرای صحیح کوئری، طبق فرمایش استاد در پست قبلی می‌توانید از از پروپرتی‌های SqlParameter استفاده کنید. :

    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";
    adp.SelectCommand.Parameters.AddWithValue("@CodeEx am", CodeExam);


    در این کد، از پارامتر `@CodeExam` برای ارسال مقدار متغیر `CodeExam` به کوئری استفاده شده است.
    آخرین ویرایش به وسیله پرستو پارسایی : سه شنبه 10 مرداد 1402 در 09:31 صبح

  4. #4
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    برای جلوگیری از فیلدهای خالی و دریافت فقط فیلدهایی که مقدار دارند ، می‌توانید از عبارت WHERE با استفاده از عملگر IS NOT NULL استفاده کنید. این عبارت به شما امکان می‌دهد فقط سطرهایی را که مقدار دارند را انتخاب کنید. بعنوان مثال:

    SELECT column1, column2, column3
    FROM table_name
    WHERE column1 IS NOT NULL AND column2 IS NOT NULL AND column3 IS NOT NULL;






    ولی با توجه به کدی که ارائه دادید، برای اطمینان از اجرای صحیح کوئری، طبق فرمایش استاد در پست قبلی می‌توانید از از پروپرتی‌های SqlParameter استفاده کنید. :

    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";
    adp.SelectCommand.Parameters.AddWithValue("@CodeEx am", CodeExam);



    سلام دوست عزیز وقت بخیر تو این حالت هیچ سطری را Select نمیکنه

    اگر بینشون OR بذارم هم هیچ سطریو نمیگیره

    در این کد، از پارامتر `@CodeExam` برای ارسال مقدار متغیر `CodeExam` به کوئری استفاده شده است.

    ممنون میشم کمکم کنی

  5. #5
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    461

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    اگر این کد هیچ سطری را انتخاب نمی‌کند، ممکن است دلیل آن این باشد که شرط `CodeExam = @CodeExam` در جدول `QueryExam` هیچ رکوردی را برآورده نمی‌کند. لطفاً از درستی مقدار `CodeExam` که به عنوان پارامتر استفاده شده است، مطمئن شوید. همچنین، مطمئن شوید که در جدول `QueryExam` فیلدهای `Question4Gozineh` و `NumFill` دارای مقادیر غیر NULL هستند.

    و یا اینگونه بررسی کنید
    using (SqlCommand command = new SqlCommand("SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL", connection))
    {
    command.Parameters.Add("@CodeExam", SqlDbType.VarChar).Value = CodeExam;


    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
    {
    DataTable dataTable = new DataTable();
    adapter.Fill(dataTable);
    // انجام عملیات مورد نیاز با داده‌های دریافت شده
    }
    }
    آخرین ویرایش به وسیله پرستو پارسایی : پنج شنبه 12 مرداد 1402 در 21:28 عصر

  6. #6
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    Question نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    اگر این کد هیچ سطری را انتخاب نمی‌کند، ممکن است دلیل آن این باشد که شرط `CodeExam = @CodeExam` در جدول `QueryExam` هیچ رکوردی را برآورده نمی‌کند. لطفاً از درستی مقدار `CodeExam` که به عنوان پارامتر استفاده شده است، مطمئن شوید. همچنین، مطمئن شوید که در جدول `QueryExam` فیلدهای `Question4Gozineh` و `NumFill` دارای مقادیر غیر NULL هستند.

    و یا اینگونه بررسی کنید
    using (SqlCommand command = new SqlCommand("SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL", connection))
    {
    command.Parameters.Add("@CodeExam", SqlDbType.VarChar).Value = CodeExam;


    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
    {
    DataTable dataTable = new DataTable();
    adapter.Fill(dataTable);
    // انجام عملیات مورد نیاز با داده‌های دریافت شده
    }
    }


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

    سطرهای دارای فیلد پر و فیلد خالی را بر می گرداند

    پس از وجود مقادیر غیر خالی مطمئن هستم

    اما این که من فقط مقادیر غیر خالی را نیاز دارم و در هر صورت هر کدی می نویسم یا هیچ سطری را بر نمی گرداند
    یا این که سطرهای دارای فیلد با مقادیر خالی و مقادیر پرا را با هم ارسال می کند. دقیقاً مثل عکس جدولم

  7. #7

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط managment-barnamenevis مشاهده تاپیک
    با سلام دوستان
    من داخل جدول طبق تصویر زیر
    چندتا فیلد دارم که تعدادی از این فیلدها در بعضی سطرها مقدار دارند
    و بعضی دیگر خالی هستند.
    من میخوام کل این فیلدهایی که مقدار دارند را select کنم


    مشکل اینه زمان چاپ مقدار های خالی هم همراه فیلدهای مقدار دارند select می شود
    و گزارشم را خراب می کنند

    می خوام راهنماییم کنید

    چطوری فقط فیلدهای مقدار دار رو دریافت کنم


    MY TABLE.png


    از این select که استفاده می کنم هیچ چیزی انتخاب نمی شود

                    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = '" + CodeExam + "' AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";



    ممنون میشم راهنماییم کنی
    بایست همه ستونهای مورد نیاز رو سلکت کنید
    اگر گزارش مشکل داره باید اونو اصلاح کنید

  8. #8
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    بایست همه ستونهای مورد نیاز رو سلکت کنید
    اگر گزارش مشکل داره باید اونو اصلاح کنید

    گزارشم درسته
    چون وقتی فقط یک ستون را می خوام کامل و بدون نقص Select می کنه

    اما وقتی AND می ذارم بینشون دیگه چیزیو Select نمی کنه

  9. #9
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    اگر این کد هیچ سطری را انتخاب نمی‌کند، ممکن است دلیل آن این باشد که شرط `CodeExam = @CodeExam` در جدول `QueryExam` هیچ رکوردی را برآورده نمی‌کند. لطفاً از درستی مقدار `CodeExam` که به عنوان پارامتر استفاده شده است، مطمئن شوید. همچنین، مطمئن شوید که در جدول `QueryExam` فیلدهای `Question4Gozineh` و `NumFill` دارای مقادیر غیر NULL هستند.

    و یا اینگونه بررسی کنید
    using (SqlCommand command = new SqlCommand("SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL", connection))
    {
    command.Parameters.Add("@CodeExam", SqlDbType.VarChar).Value = CodeExam;


    using (SqlDataAdapter adapter = new SqlDataAdapter(command))
    {
    DataTable dataTable = new DataTable();
    adapter.Fill(dataTable);
    // انجام عملیات مورد نیاز با داده‌های دریافت شده
    }
    }


    دوست عزیز حتی کدم را با این شکل تغییر دادم

           con.Open();

    // Query 1: CodeExam = @CodeExam



    // Query 2: [Question4Gozineh] IS NOT NULL
    adp.SelectCommand = new OleDbCommand();
    adp.SelectCommand.Connection = con;
    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND Question4Gozineh IS NOT NULL";
    adp.SelectCommand.Parameters.AddWithValue("@CodeEx am", CodeExam);
    adp.Fill(ds, "QueryExam");


    // Query 3: [NumFill] IS NOT NULL
    adp.SelectCommand = new OleDbCommand();
    adp.SelectCommand.Connection = con;
    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND NumFill IS NOT NULL";
    adp.SelectCommand.Parameters.AddWithValue("@CodeEx am", CodeExam);
    adp.Fill(ds, "QueryExam");


    con.Close();


    DataTable filteredTable = new DataTable("filteredTable");
    foreach (DataColumn column in ds.Tables["QueryExam"].Columns)
    {
    filteredTable.Columns.Add(column.ColumnName, column.DataType);
    }


    foreach (DataRow row in ds.Tables["QueryExam"].Rows)
    {
    filteredTable.ImportRow(row);
    }


    if (filteredTable.Rows.Count > 0)
    {
    stiReport1.Load(Application.StartupPath + "\\ReportMyQuestion.mrt");
    stiReport1.RegBusinessObject("QueryExam2", filteredTable);
    stiReport1.Show();
    }
    else
    {
    MessageBox.Show("هیچ داده‌ای برای چاپ یافت نشد.", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
    }





    اما کماکان مشکل پا برجاست

    این هم خروجی کد بالا

    Report2.jpg

    اینم دیزاینش

    design rep.jpg
    آخرین ویرایش به وسیله managment-barnamenevis : جمعه 13 مرداد 1402 در 17:13 عصر دلیل: اضافه کردن عکس دیزاین

  10. #10
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    461

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    به نظر من در این کد، مشکلی وجود ندارد و به نظر می‌رسد کد صحیح باشد. این کد باید سطرهایی را انتخاب کند که شرایط `CodeExam = @CodeExam` و `Question4Gozineh IS NOT NULL` یا `NumFill IS NOT NULL` را برآورده می‌کنند. اگر این کد هیچ سطری را انتخاب نمی‌کند، ممکن است مشکل دیگری در داده‌ها یا در پیکربندی دیتابیس وجود داشته باشد که باید بررسی شود. لطفاً چک کنید که داده‌های مورد نیاز برای شرایط مذکور وجود دارند

  11. #11
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    به نظر من در این کد، مشکلی وجود ندارد و به نظر می‌رسد کد صحیح باشد. این کد باید سطرهایی را انتخاب کند که شرایط `CodeExam = @CodeExam` و `Question4Gozineh IS NOT NULL` یا `NumFill IS NOT NULL` را برآورده می‌کنند. اگر این کد هیچ سطری را انتخاب نمی‌کند، ممکن است مشکل دیگری در داده‌ها یا در پیکربندی دیتابیس وجود داشته باشد که باید بررسی شود. لطفاً چک کنید که داده‌های مورد نیاز برای شرایط مذکور وجود دارند
    اگه بنویسم
    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = '"+ CodeExam + "' AND [Question4Gozineh] IS NOT NULL";


    به درستی جواب میده و خالی برنمی گردونه

    اما اگه بنویسم

    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = '"+ CodeExam + "' AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";


    سطر خالی و پر را با هم میده
    جدول بانک اکسس را براتون ارسال کنم؟

  12. #12
    کاربر دائمی آواتار پرستو پارسایی
    تاریخ عضویت
    آبان 1392
    محل زندگی
    تهران
    پست
    461

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    لطفا اینگونه بررسی کنید

    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";
    adp.SelectCommand.Parameters.Add("@CodeExam", OleDbType.VarChar).Value = CodeExam;

  13. #13
    کاربر دائمی آواتار managment-barnamenevis
    تاریخ عضویت
    آذر 1391
    محل زندگی
    یه جایی که بشه نفس کشید یه شهری که نشه روش قفس کشید
    سن
    32
    پست
    121

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی

    نقل قول نوشته شده توسط پرستو پارسایی مشاهده تاپیک
    لطفا اینگونه بررسی کنید

    adp.SelectCommand.CommandText = "SELECT * FROM QueryExam WHERE CodeExam = @CodeExam AND [Question4Gozineh] IS NOT NULL AND [NumFill] IS NOT NULL";
    adp.SelectCommand.Parameters.Add("@CodeExam", OleDbType.VarChar).Value = CodeExam;
    سلام این کد جواب نداد


    کاری که کردم این بود

    اول کوئری جدا نوشتم برای هر کدوم از گروههایی که باید با هم select بشن

    و regbusines در استیمول را هم مثل کوئری گروه بندی جدا کردم

    و خدا رو شکر تو این حالت جواب داد

  14. #14
    کاربر دائمی آواتار ROSTAM2
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    فارس
    پست
    2,010

    نقل قول: گرفتن فیلدهای پر و فیلتر کردن فیلدهای خالی


برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •