آموزش برنامه نویسی با c++ سی پلاس پلاس
برنامه چاپ جدول ضرب در c++
31 فروردین 1400
آموزش برنامه نویسی با c++ سی پلاس پلاس
تمرین مثال رشته ها معکوس در c++
4 اردیبهشت 1400
Show all

کد جستجو در سی شارپ دیتا گرید ویو find

آموزش کار با برنامه نویسی c# سی شارپ

کد جستجو در سی شارپ دیتا گرید ویو دستور find

برای نوشتن کد جستجو در سی شارپ دیتا گرید ویو دستور find يک فرم جستجو داريم كه داده های كارب ها را از بانک اطلاعاتی می خواند و در DataTable قرار مي دهد و بوسیله ابزار DataGridView آن داده ها را نمایش میدهد.

بنا بر این میبایست تا این مرحله از کد برنامه را خودتان آماده کرده باشید .كليات عملی كه قرار است انجام دهيم بدین صورت میباشد كه در فرم اطلاعات یک جعبه متن اضافه مي كنيم و قرار است هم زمان با تايپ کردن کاربر بلافاصله عملیات جستجو انجام گردد بنابراین بايد برنامه نویسی این قسمت در رویداد TextChanged تکست باکس بنويسيم.

کد جستجو در سی شارپ دیتا گرید ویو دستور find

عملیات جستجو را در يک كلاس قرار میدهیم و در برنامه اصلی آن كلاس را فراخواني مي نماییم . پارامتر هايي كه میبایست به این تابع داخل كلاس ارسال شوند به شرح زیر است :

  • دیتا تیبل مورد نظر

  • متن جستجو

  • آرايه ای رشته اي که از نام ستونهايي كه قصد داریم جستجو براساس آنها انجام گردد .

با توجه به توضیحات فوق کد برنامه را آغاز می نماییم.

آرایه رشته های مورد نظر را تعریف میکنیم :

string[] columnName = new string[20];

 

اکنون در رویداد لود فرم نام ستونهايي از DataTable را كه قرار است عملیات جستجو بر طبق آن صورت گیرد به این آرايه اضافه مي كنيم :

columnName[0] = dt.Columns["Name"].ColumnName;
columnName[1] = dt.Columns["Family"].ColumnName;
columnName[2] = dt.Columns["idPerson"].ColumnName;

 

كلاس گفته شده در بالا را ايجاد مينماییم و در داخل آن کلاس تابع جستجو را تعريف مينماییم ، تابع زیر يک رشته را برمي گرداند ، پارامترهاي ورودي تابع را بصورت زیر تعریف میکنیم :

public string resaultOfSearch1(DataTable rdt , string txt , string[] listColumn)
{
}

 

تابع فوق يک رشته برگردانده كه دستور فيلتر نمودن دیتا تیبل در آن نوشته شده میباشد ، به دلیل حجم بالای كدهاي اين تابع توضيح كلي درباره نحوه عملکرد آن ارائه میشود:

ابتدا از پر بودن آن مطمئن شوید :

if (txt != "")
{
}

 

در صورت خالی بودن متن دستور زیر را اجرا میکنیم :

if (txt != "")
{
try
{
int x = Convert.ToInt32(txt);
items = string.Empty;
}
catch (Exception)
{
}
}

 

اگر مقدار ورودی عددی يا رشته ای باشد باید نوع آنرا پیدا کنیم زیرا اگر نوع عددی باشد از مقایسه گر = در آن استفاده میشود و چنانچه رشته ای باشد از عملگر LIKE باید استفاده کنیم .

اکنون دستورات را بشرح زیر بازنویسی می کنیم :

try
 {
 int x = Convert.ToInt32(txt); items = string.Empty;
 for (int i = 0; i < rdt.Columns.Count; i++)
 {
 if (Array.IndexOf(listColumn, rdt.Columns[i].ToString()) != -1)
 {
 if (rdt.Columns[i].DataType == typeof(Int32)) 
{ 
if (i == rdt.Columns.Count - 1) { items += rdt.Columns[i] + "=" + txt;
 }
 else
 {
 items += rdt.Columns[i] + "=" + txt + " OR ";
 }
 } 
else if (rdt.Columns[i].DataType == typeof(string)) 
{
 if (i == rdt.Columns.Count - 1)
 {
 items += rdt.Columns[i] + " LIKE '%" + txt + "%'"; 
} 
else
 {
 items += rdt.Columns[i] + " LIKE '%" + txt + "%'" + " OR ";
 }
 }
 }
 }
 }

 

دستورات داخل Catch را نیز بصورت زیر برای هندل کردن خطا باز نویسی می کنیم :

catch (Exception) 
{
 try
 {
 items = string.Empty;
 for (int i = 0; i < rdt.Columns.Count; i++) 
{
 if (Array.IndexOf(listColumn, rdt.Columns[i].ToString()) != -1) 
{
 if (rdt.Columns[i].DataType == typeof(string))
 {
 if (i == rdt.Columns.Count)
 {
 items += rdt.Columns[i] + " LIKE '%" + txt + "%'"; 
} 
else
 {
 items += rdt.Columns[i] + " LIKE '%" + txt + "%'" + " OR ";
 }
 }
 }
 }
 }
 catch (Exception) { } 
}

 

ممکن است بعلت جستجوی چند تایی یک دستور OR در پایان اضافه باشد که باید آنرا حذف کنیم.

اکنون در رویداد textchanged در جعبه متن جستجو با توجه به اینکه گرید ویوو به دیتا تیبل متصل است استفاده کرده و عملیات جستجو با دستور find را انجام می دهیم :

private void textBox4_TextChanged(object sender, EventArgs e)
{
Class.search1 srch1 = new Class.search1();
dt.DefaultView.RowFilter = srch1.resaultOfSearch1(dt,textBox4.Text,columnName);
}

 

 


اکنون میتوانید سورس کد دستور جستجو در دیتا تیبل و دیتا گرید ویو در سی شارپ با استفاده از دستور find را در زیر دانلود کنید.

دانلود سورس کد جستجو در سی شارپ

برای انجام جستجو در datagridview در سی شارپ c# باید دیتا تیبل datatable برنامه را به گرید ویوو فرم اصلی متصل نمایید بوسیله کد دستور جستجو در datagridview در سی شارپ انجام میشود.

فروش نرم افزار پارکینگ عمومی و نرم افزار تشخیص پلاک دلتا

شرکت مهندسی اندیشه تراشه ویرا

تلفن تماس : 09120613870-02176490358

 

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.