PDA

View Full Version : سوال: مشکل فیلتر کردن دیتاگرید با فارسی



shytonak
دوشنبه 17 آبان 1389, 16:50 عصر
دوستان من وقتی یه عبارتی رو برای فیلتر شدن در دیتاگرید تعیین می کنم اگه فارسی باشه دیتاگرید نمی تونه اونو شناسایی کنه.جالب اینه که اگه بیام همون کلمه فارسی رو از توی خود دیتا کپی کنم و در تکست باکس وارد کنم میشناسه.

M.YasPro
دوشنبه 17 آبان 1389, 17:08 عصر
سلام
قبل از شروع رشته کارکتر @ رو بزارید.
مثل :


string filter=@"name";

موفق باشید ./

shytonak
دوشنبه 17 آبان 1389, 18:50 عصر
متاسفانه بازم نمی شناسه.

Mohandes2009
دوشنبه 17 آبان 1389, 19:11 عصر
دوستان من وقتی یه عبارتی رو برای فیلتر شدن در دیتاگرید تعیین می کنم اگه فارسی باشه دیتاگرید نمی تونه اونو شناسایی کنه.جالب اینه که اگه بیام همون کلمه فارسی رو از توی خود دیتا کپی کنم و در تکست باکس وارد کنم میشناسه.
یه trim بزار ببین خوب میشه:متفکر:

ایمان مدائنی
دوشنبه 17 آبان 1389, 19:37 عصر
نه مشكل در كد هاي كاراكتر است
مثلا در بعضي از ويندوزها حرف ي و پ مشكل داره تست كنيد ببينيد بدون اين دو كلمه كار ميكنه يا نه !

shytonak
سه شنبه 18 آبان 1389, 00:04 صبح
نه بازم جواب نداد trim گذاشتم.
پ و ی رو استفاده نکردم بازم نشد.
:ناراحت:

payman_xxp
سه شنبه 18 آبان 1389, 08:29 صبح
سلام
این دو حرف در ویندوزهای مختلف فرق دارن:
ی ک
لطفا چک کنید
برای اصلاح هم به تاپیک زیر سربزنید:
http://barnamenevis.org/forum/showthread.php?t=227399
موفق باشید.

ایمان مدائنی
سه شنبه 18 آبان 1389, 08:41 صبح
دوست عزيز كدهاتو بزار ببينيم
اون قسمتي كه فيلتر ميكنه

shytonak
سه شنبه 18 آبان 1389, 12:36 عصر
string filter = @textBox1.Text.Trim();
string str = "select * from telephon where ";
if (textBox1.Text != "") str += "name like '" + filter + "' or persian like '" + filter + "' and";
//'inja str control mishavad va , and akhari bardashte mishavad
if (str == "select * from telephon")
str = "select * from telephon";
else
str = str.Remove(str.Length - 4, 4);
DataTable dt = new DataTable();
DataBase db = new DataBase();
dt = db.MySelect(str);
dataGridView1.DataSource = dt;
if (dt.Rows.Count.ToString() == "0")
{
MessageBox.Show("متاسفانه موردی یافت نشد");
}

ایمان مدائنی
سه شنبه 18 آبان 1389, 12:45 عصر
ببين من كدهاي كامل فرمم رو برات ميزام مشكلي داشتي بگو


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

namespace PKT
{
public partial class frmListShahrha : Form
{
private Hashtable Shahr;
private string Conect = null;
DataView Dv;
DataTable Dt;
public frmListShahrha(Hashtable shahrha)
{
Shahr = shahrha;
InitializeComponent();
}

private void frmListShahrha_Load(object sender, EventArgs e)
{
this.skinEngine1.SkinFile = Application.StartupPath + "\\s\\a (44).ssk";
this.skinEngine1.Active = true;
Tarikh.Class1 C1 = new Tarikh.Class1();
Conect = C1.Connectio;
textBox2.Focus();
SqlConnection SqlCn = new SqlConnection(Conect);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
string query = "SELECT ID AS[شناسه],Shar AS[نام],SHerkat AS[شركت طرف قرار داد],Nerkh AS[نرخ ارسال],NerkhSAD AS[نرخ +100],NerkhPANSAD AS[نرخ +500] From Shahr";
cmd.CommandText = query;
cmd.Connection = SqlCn;
SqlCn.Open();
SqlDataReader Dr = cmd.ExecuteReader();
Dt = new DataTable();
Dt.Load(Dr);
Dv = Dt.DefaultView;
Dv.RowFilter = "";
dataGridView1.DataSource = Dt;

}

private void button3_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
this.Close();
}

private void btnOk_Click(object sender, EventArgs e)
{
Shahr.Add("ID", dataGridView1.SelectedRows[0].Cells[0].Value);
Shahr.Add("Shar", dataGridView1.SelectedRows[0].Cells[1].Value);
Shahr.Add("SHerkat", dataGridView1.SelectedRows[0].Cells[2].Value);
Shahr.Add("Nerkh", dataGridView1.SelectedRows[0].Cells[3].Value);
Shahr.Add("NerkhSAD", dataGridView1.SelectedRows[0].Cells[4].Value);
Shahr.Add("NerkhPANSAD", dataGridView1.SelectedRows[0].Cells[5].Value);

DialogResult = DialogResult.OK;

this.Close();
}

private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
btnOk.PerformClick();
}

private void textBox2_TextChanged(object sender, EventArgs e)
{
string name = textBox2.Text;
Dv.RowFilter = string.Format("نام Like '{0}%'", name);
}
}
}


اين قسمت گريد رو فيلتر ميكنه

private void textBox2_TextChanged(object sender, EventArgs e)
{
string name = textBox2.Text;
Dv.RowFilter = string.Format("نام Like '{0}%'", name);
}