سلام دوستان
من در یک برنامه سی شارپ میخوام که کاربر وقتی کلید واژه(یعنی یک کلمه از یک متن )را در تکس باکس وارد کرد وقتی دکمه جستجو را کلیک کرد متنی را که این کلمه در آن بود را نمایش دهد لطفا اگر شما راهی به ذهنتون میرسه مرا راهنمایی کنید
سلام دوستان
من در یک برنامه سی شارپ میخوام که کاربر وقتی کلید واژه(یعنی یک کلمه از یک متن )را در تکس باکس وارد کرد وقتی دکمه جستجو را کلیک کرد متنی را که این کلمه در آن بود را نمایش دهد لطفا اگر شما راهی به ذهنتون میرسه مرا راهنمایی کنید
سلام
ابتدا متن رو بر اساس کاراکتر فاصله اسپلیت کن و در یک لیست قرار بده. (تا اینجا متن به کلماتی تبدیل شد). بعد با شرط Contains چک کن.
اگر هر جمله رو جدا داری که لیستی از لیست ها تشکیل میدی.
اگر جمله هات همه در یک متن هست ابتدا جمله ها رو بر اساس کاراکتر نقطه جدا کن بعد بریز در یک لیست و آن لیست ها رو اسپلیت کن.
اگر متوجه نشدی یا به کارت نیومد یک مثال از صورت مسئله بزن برات کد میزارم.
دوست عزیز سوالت ناقص.این متن ها کجاست؟ توی دیتابیس؟ تو فایل؟ اگه دیتابیس که یه Select بزن و از LIKE استفاده کن، اگه نه بگو این متن ها کجاست که میخوای توش Search انجام بدی؟
با فرض این که از دیتابیس میخوای جستجو کنی :
select * from user where name like '%ali%'
با دستور بالا در جدول یوزر هرجا اسم علی در فیلد نام وجود داشته باشه نمایش میده البته از حلقه ها استفاده کن تا هر چند تا هست نمایش بده والا فقط آخری رو گه ببینه برمیگردونه
اول تشکر میکنم از شما دوستان به خاطره توجه شما به سواله من
بعدم بگم که متن مورد نظر من در دیتابیس هست و من متوجه شدم که باید از دستور select و عملگر Like استفاده کنم و الان مشکل من اینجاست که برنامه به کوتیشن ارور میده و کد من هم در این قسمت
SqlDataAdapter da = new SqlDataAdapter("select (Ssharh) from tblPish where (Shoze=@s) AND (Ssharh=@sh LIKE "%")",con);
که به کوتیشن ارور میده
است و در صورت تغییر به
SqlDataAdapter da = new SqlDataAdapter("select (Ssharh) from tblPish where (Shoze=@s) AND (Ssharh=@sh LIKE '%')",con);
خطایIncorrect syntax near the keyword 'LIKE'.میدهد به نظر شما باید کوتیشن ها رو چطوری قرار بدم تا درست بشه؟
میشه لطفا بگید دنبال چه چیزی هستید ؟
توی تیبل tblPish میخواید متن داخل تکس باکس با متن داخل فیلد برابر باشه ؟ اگه منظورتون اینه که فکر میکنم از بیخ کدتون غلط باشه
بهتره به زبان فارسی همینجوری که صحبت میکنیم سوالتون که قراره دستور اس کیو ال بشه رو بیان کنید تا بهتر در موردش صحبت کنیم
سلام اینو امتحان کن
SqlCommand objCommand = new SqlCommand();
objCommand.CommandText = "select Sshahr from tblpish where shoze like N'%"+textbox.text+"%'"
متاسفانه این کد هم ارور Incorrect syntax near the keyword 'Like'. رو میده
سلام ، به این تکه کد که واستون نوشتم دقت کن :
OleDbDataAdapter DA= new OleDbDataAdapter();
DA.SelectCommand=new OleDbCommand();
DA.SelectCommand.Connection=my_con;
DA.SelectCommand.CommandType=CommandType.Text;
DA.SelectCommand.CommandText="Select * from tblpish where s_name like '%" + textBox1.Text.Trim() + "%'";
my_con.Open();
DataTable dt= new DataTable();
DA.Fill(dt);
dataGridView1.DataSource=dt;
my_con.Close();
کاملا تست شده و بدور از اشکاله
موفق باشید./
دوست عزیز از کدی که برام گذاشتین ممنون این کد به درستی کار کرد فقط مشکل اینجاست که کلماتی که داری حرف(ی) رو مثل کلمه (داریم) رو در هنگام سرچ نمیشناسه و برای این کلمات پس از سرچ چیزی نمایش نمیده ،شما دوستان فکر میکنید اشکال از فونتش هست یا از چیزه دیگه ای؟
سلام ،
دوست عزیز من همین الان امتحان کردم و به درستی کار کرد.یعنی حرف مابین (ی) رو هم جستجو میکنه.
سلام به این صورت بنویسید:
var DA = new OleDbDataAdapter
{
SelectCommand = new OleDbCommand
{
Connection =my_con,
CommandType = CommandType.Text,
CommandText = "Select * from tblpish where s_name like '%' + @s_name + '%'"
}
};
DA.SelectCommand.Parameters.AddWithValue("@s_name" , textBox1.Text.Trim());
DA.SelectCommand.Connection.Open();
var dt = new DataTable();
DA.Fill(dt);
dataGridView1.DataSource = dt;
my_con.Close();
دوست عزیز کلا فارسی با دو حرف ی و ک مشکل داره چون هم کد فارسی و عربی این دو تا کاراکتر با هم فرق داره و امکان داره چیزی که تو دیتابیس هست مثلا ی عربی باشه و شما با کیبورد ی فارسی رو وارد کردی و میخوای سرچ کنی.. کلا تو پروژه هایی که فارسی زبانه بهتر که از ابتدا کلا یه تابع داشته باشی که همه ورودی ها رو (از هر کیبوردی که باشه)یکسان ذخیره کنه، یا عربی کنه و ذخیره کنه یا فراسی و اینجوری موقع سرچ هم میتونی ورودی کاربر رو به اون نوع که ذخیره کردی(فارسی یا عربی) تبدیل کنی و بعد سرچ کنی.
دوستان مشکل حل شد کافی است که در زمان ثبت و جست و جو از کد زیر در رویداد Key press استفاده کنم
if (e.KeyChar == 'ی') e.KeyChar = 'ي';
شما الان با این کد اطلاعات رو توی دیتاتیبل dt داری و هر کاری بخوای میتونی با ردیف های این دیتاتیبل (datarow) ها بکنی و میتونی یه loop روی dt.rows بزنی و ردیف به ردیف اطلاعات رو بخونی و هر جایی که میخوای نشون بدی
1 ) آره
2 )اول یک Label رو فرمت قرار بده بعد این خط رو بعد از Da.fill کپی کن و نتیجه رو مشاهده کن :
label1.Text = dt.Rows[0][1].ToString();
موفق باشید.
بله اشکال در فونت هستش