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

نام تاپیک: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

  1. #1
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    پست
    69

    Exclamation پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

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

  2. #2
    کاربر دائمی آواتار flash118
    تاریخ عضویت
    شهریور 1387
    محل زندگی
    بسته های شبکه
    پست
    466

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    با سلام بفرمایید تو یه تابع همراه با مثالش براتنون قرار دادم :

    public DataTable RemoveDuplicateRows(DataTable dTable, string colName)
    {
    Hashtable hTable = new Hashtable();
    ArrayList duplicateList = new ArrayList();

    //اضافه کردن آیتم های تکراری به داخل اری لیست
    foreach (DataRow drow in dTable.Rows)
    {
    if (hTable.Contains(drow[colName]))
    duplicateList.Add(drow);
    else
    hTable.Add(drow[colName], string.Empty);
    }

    // datatable.حذف کردن لیست داده های تکراری از
    foreach (DataRow dRow in duplicateList)
    dTable.Rows.Remove(dRow);

    //دیتا تیبل حالا خالی از مقادیر تکراری هست
    return dTable;
    }


    یه نمونه برای استفاده:

    protected void Button1_Click(object sender, EventArgs e)
    {
    string strConn = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
    SqlConnection conn = new SqlConnection(strConn);

    SqlDataAdapter da = new SqlDataAdapter("select * from emp", conn);
    DataSet ds = new DataSet();
    da.Fill(ds, "Emp");

    // پرکردن اطلاعات
    DataTable dt = ds.Tables["Emp"];
    //فراخوانی تابعی که نوشتیم اونی که اون بالا گذاشتم
    dt = RemoveDuplicateRows(dt, "empname");
    //dt الان بدون داده های تکراری هست

    GridView1.DataSource = ds.Tables["Emp"].DefaultView;
    GridView1.DataBind();
    }

    موفق باشید

  3. #3
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    پست
    69

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    از پاسختون ممنونم
    منتها شاید بهتره که بیشتر توضیح بدم:
    ببینین من میخوام وقتی توی تکست باکس LastName یک مقداری وارد میشه ؛توی دیتا گریدی که همه اطلاعات(من جمله فیلد LastName رو نشون میده)صرفا رکوردهایی را نشان بدهد که فیلد LastName آن شبیه به مقدار وارد شده در تکست باکس LastName را داراست.
    مثلا اگر قبلا در دیتا گرید برای فیلد LastName ؛مقدار "احمدی" یا "احمد زاده" وارد شده و کاربر شروع به نوشتن "احمد" در تکست باکس LastName کرد ؛در دیتا گرید همزمان رکوردهایی که حاوی مقدار"احمد"هستند را نشان دهد.
    برای اینکار چه باید کرد؟
    با تشکر

  4. #4
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    پست
    69

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    در ضمن نمیخواهیم اجازه ثبت مقادیر تکراری را به کاربر ندهد؛ بلکه رکوردهایی که با نام خانوادگی مشابه آغاز میشوند را در گرید پایین فرم ببیند.

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

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    خوب دوست عزیز کافیه در همون متد که برای حذف مقادیر تکراری بیان کردیم یه کم انعطاف نشون بدید و با هر تغییر در تکس باکس LastName خوب اون بالا حذف میکردیم اینبار اگه مساوی هم بودن اضافه کنید و در آخذ دیتا تیبل رو به همین مقادیر مشابه به روز رسانی کنید خیلی راحت و آسون

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1385
    پست
    69

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    ازتون ممنونم
    من یه کار دیگه کردم که بنظرم رسید اینجا بذارم شاید برای کسی که خواست اینو امتحان کنه خوب باشه:
    برای اینکار توی فرمی که میخواستم اضافه بر وارد شدن همزمان اطلاعات در تکست باکس نام؛ در زیر آن در دیتا گرید مربوط به اطلاعات آن نامهای مشابه آنرا نشان دهد این کد را برای event مربوط به TextChanged نوشتم:
    person1BindingSource.Filter = "[Lname] like '%" + lnameTextBox.Text + "%'";

  7. #7
    کاربر دائمی آواتار Esmail Solhkhah
    تاریخ عضویت
    مهر 1385
    محل زندگی
    بورکینافاسو
    پست
    1,774

    نقل قول: پیام موقع ورود مقدار تکراری در یک فیلد از دیتا گرید

    نقل قول نوشته شده توسط azadeh_1510 مشاهده تاپیک
    ازتون ممنونم
    من یه کار دیگه کردم که بنظرم رسید اینجا بذارم شاید برای کسی که خواست اینو امتحان کنه خوب باشه:
    برای اینکار توی فرمی که میخواستم اضافه بر وارد شدن همزمان اطلاعات در تکست باکس نام؛ در زیر آن در دیتا گرید مربوط به اطلاعات آن نامهای مشابه آنرا نشان دهد این کد را برای event مربوط به TextChanged نوشتم:
    person1BindingSource.Filter = "[Lname] like '%" + lnameTextBox.Text + "%'";
    روش خوبیه

    ولی ایکاش کد رو که مینویسید اینجا اول سلکتش کنید بهد از نوار ابزار دکمه #C رو بزنید تا موقع خوندن بصورت کد رنگی و تورفته دیده بشه


    person1BindingSource.Filter = "[Lname] like '%" + lnameTextBox.Text + "%'";


    موفق باشید.

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

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