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

نام تاپیک: نحوه جستجو در دیتاگریدویو تحت شرایط خاص

  1. #1

    Question نحوه جستجو در دیتاگریدویو تحت شرایط خاص

    سلام
    دوستان من توی برنامم یه دیتا گرید دارم که میخوام توی سطر اولش بتونم جستجوی ستون به ستون بذارم (یعنی نسبت به هر ستون بتونم سطرهارو جستجو کنم) اما میخوام اطلاعات مابقیه سطرها قابل ویرایش نباشن
    چطور میتونم این 2 تا کارو باهم انجام بدم
    خییییلی خیلی فوریه لطفا هرکی میتونه کمکم کنه،ممنون میشم

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

    نقل قول: نحوه جستجو در دیتاگریدویو تحت شرایط خاص

    نه نمیتونه!

  3. #3

    نقل قول: نحوه جستجو در دیتاگریدویو تحت شرایط خاص

    واقعا که..! ممنون.!

  4. #4
    مدیر بخش آواتار مهرداد صفا
    تاریخ عضویت
    تیر 1391
    محل زندگی
    select Country,City From World where Country.Name=IRAN and City.Contains(حضرت معصومه(ع))
    پست
    1,499

    نقل قول: نحوه جستجو در دیتاگریدویو تحت شرایط خاص

    با سلام.
    برای اینکه تنها سطر اول قابل ویرایش باشد باید در رویداد CellBeginEdit مقدار E.RowIndex را چک کنید و در صورت بیشتر از 0 E.Candcelرا true کنید.
    برای جستجو بر اساس خانه های سطر اول ابتدا سلولهای ویرایش شده را به دست می آوریم سپس بر اساس آنها یک درخواست به سرور ارسال می کنیم و مقدار را در یک DataTable نگه می داریم. برای اینکه سطر اول مجددا خالی باشد یک سطر به ابتدای آن اضافه می کنیم و به اعنوان DataGridview.DataSource قرار می دهیم. به این صورت:

    //in the name of god
    //صل الله علی محمد و آله

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.SqlClient;

    namespace WindowsFormsApplication1
    {
    public partial class Form1 : Form
    {

    DataTable table = new DataTable();
    static string TableName ="sys.objects";
    static string DatabaseName = "master";
    SqlDataAdapter adapter = new SqlDataAdapter("", @"server=.\sqlexpress;integrated security=true;database="+DatabaseName+";" );
    Action<string, DataTable> FillTable;
    public Form1()
    {
    InitializeComponent();
    FillTable = (query, Table) => { adapter.SelectCommand.CommandText = query; adapter.Fill(table); };

    FillTable("select * from " + TableName, table);
    dataGridView1.DataSource = new DataTable();
    DataTable table2 = dataGridView1.DataSource as DataTable;
    table2.Columns.AddRange(table.Columns.Cast<DataCol umn>().Select((column) =>new DataColumn(column.ColumnName)).ToArray());
    table2.Rows.Add();
    foreach (DataRow row in table.Rows) table2.Rows.Add(row.ItemArray);
    }



    private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
    {
    if (e.RowIndex > 0) e.Cancel = true;
    }

    private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
    //انتخاب خانه های پر سطر اول برای جستجو بر اساس آنها
    var ColumnsToSearch=(from DataGridViewCell cell in dataGridView1.Rows[0].Cells where cell.Value !=DBNull.Value& cell.Value!=null& cell.Value.ToString()!="" select new {name =dataGridView1.Columns[cell.ColumnIndex].Name,value=cell.Value}).ToArray();
    dataGridView1.DataSource = null;
    string sql = " select * from " + TableName + " where ";
    for (int i = 0; i < ColumnsToSearch.Length; i++) sql += ColumnsToSearch[i].name + " like N'" + ColumnsToSearch[i].value + "' and ";
    sql = sql.Substring(0, sql.Length - 4);
    table = new DataTable();
    FillTable(sql, table);
    //یک جدول جدید برای نگهداری نتایج جستجو
    DataTable table2 = new DataTable();
    //اضافه کردن ستونهای جدول اصلی به جدول جستجو
    table2.Columns.AddRange(table.Columns.Cast<DataCol umn>().Select((x) => new DataColumn(x.ColumnName)).ToArray());
    //اضافه کردن سطر اول مخصوص جستجو...
    table2.Rows.Add();
    for (int i = 0; i < ColumnsToSearch.Length; i++) table2.Rows[0][ColumnsToSearch[i].name] = ColumnsToSearch[i].value;
    //اضافه کردن مابقی سطرها

    foreach (DataRow row in table.Rows) table2.Rows.Add(row.ItemArray);
    dataGridView1.DataSource = table2;

    }
    }
    }
    چشم ظاهر گر نبیند عیب نیست چشم دل گر ننگرد باید گریست
    **********
    اَلسَّلامُ عَلَى الْحُسَيْنِ وَ عَلى عَلِىِّ بْنِ الْحُسَيْنِ وَ عَلى اَوْلادِ الْحُسَيْنِ وَ عَلى اَصْحابِ الْحُسَيْنِ

تاپیک های مشابه

  1. مبتدی: نحوه Insert کردن در دیتابیس با شرایط خاص
    نوشته شده توسط 81579001 در بخش SQL Server
    پاسخ: 2
    آخرین پست: یک شنبه 16 آبان 1389, 11:39 صبح
  2. جستجو در دیتا بیس با شرایط خاص
    نوشته شده توسط mehdi4467 در بخش C#‎‎
    پاسخ: 16
    آخرین پست: شنبه 20 شهریور 1389, 16:37 عصر
  3. پاسخ: 1
    آخرین پست: پنج شنبه 06 دی 1386, 13:01 عصر
  4. نحوه جستجو در یک فایل متنی
    نوشته شده توسط mino در بخش ASP.NET Web Forms
    پاسخ: 6
    آخرین پست: شنبه 24 مرداد 1383, 23:14 عصر
  5. نحوه جستجو +فیلتر+فیلتر در دیتابیس؟
    نوشته شده توسط Mahdiseif در بخش برنامه نویسی در Delphi
    پاسخ: 4
    آخرین پست: یک شنبه 28 دی 1382, 23:19 عصر

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

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