PDA

View Full Version : سوال: کار نکردن عملیات جستجو



ahmad_ir
جمعه 18 تیر 1389, 20:51 عصر
سلام
من یه برنامه دارم که با پایگاه داده کار می کنه تو برنامه یه جستجو براساس فامیلی قرار دادم وقتی یه فامیلی که به صورت فارسی در پایگاه هست جستجو می کنم اطلاعات اون رکورد رو نمیاره ولی اگه به زبان انگلیسی باشه درست کار می کنه یعنی در واقع رکورد هایی که به زبان فارسی هست رو پیدا نمی کنه :گیج:
ممنون میشم کمکم کنید

Rejnev
جمعه 18 تیر 1389, 22:27 عصر
collation دیتابیس چیه؟
کلمه ای که جستجو میکنید چیه(حروف ک گ پ ژ چ) داره؟
اگه نه، برای همه کلمات فارسی مشکل داره که باید بگم نمیدونم
ولی اگه آره که باید بگم
وقتی شما در کیبورد حرفی مثل ک رو تایپ میکنید، کدی که کیبورد میفرسته و کدی که اس کیو ال در بانک ذخیره میکنه فرق میکنن و موقع خوندن مشکل دار میشه(البته توی حروف مذکور). چون کیبورد فارسی و عربی حروف مشترک مثل م و س و ... دارن و پیش فرض زبان دیتابیس هم عربیک هست که مشکل دار میکنه
اگه ایراد از این باشه چند راه دارین
یکی این که موقع درج هر رشته توی بانک پشت متون حرف N رو قرار بدید(تا تبدیل به یونیکد بشه)
مثلا



insert into tbl(field1)values(N'ali')


یکی دیگه که راحت تر هم هست، مچ کردن کیبورد با ویندوزه. که باید فایل KBDFA.dll استاندارد فارسی رو با حجمی چند کیلوبایتی گیر بیارید و روی سیستم در حالت safe mode کپی کنید(و روی سیستم مشتری هم هم!)
امیدوارم کمک کنه.(من همونقدر بلدم)

ahmad_ir
شنبه 19 تیر 1389, 17:21 عصر
collation دیتابیس چیه؟
کلمه ای که جستجو میکنید چیه(حروف ک گ پ ژ چ) داره؟
اگه نه، برای همه کلمات فارسی مشکل داره که باید بگم نمیدونم
ولی اگه آره که باید بگم
وقتی شما در کیبورد حرفی مثل ک رو تایپ میکنید، کدی که کیبورد میفرسته و کدی که اس کیو ال در بانک ذخیره میکنه فرق میکنن و موقع خوندن مشکل دار میشه(البته توی حروف مذکور). چون کیبورد فارسی و عربی حروف مشترک مثل م و س و ... دارن و پیش فرض زبان دیتابیس هم عربیک هست که مشکل دار میکنه
اگه ایراد از این باشه چند راه دارین
یکی این که موقع درج هر رشته توی بانک پشت متون حرف N رو قرار بدید(تا تبدیل به یونیکد بشه)
مثلا



insert into tbl(field1)values(N'ali')


یکی دیگه که راحت تر هم هست، مچ کردن کیبورد با ویندوزه. که باید فایل KBDFA.dll استاندارد فارسی رو با حجمی چند کیلوبایتی گیر بیارید و روی سیستم در حالت safe mode کپی کنید(و روی سیستم مشتری هم هم!)
امیدوارم کمک کنه.(من همونقدر بلدم)


دوست عزیز خیلی ممنون از کمکتون
ولی برنامه من با همه حروف مشکل داره

imani1983
شنبه 19 تیر 1389, 22:23 عصر
دوست عزيز اين نمونه كد را امتحان كن ببين چي كار مي كنه؟

private void button2_Click(object sender, EventArgs e)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(sqlCommand1.CommandText, sqlConnection1.ConnectionString);
DataSet ds = new DataSet();
SqlDataReader reader;
da.Fill(ds, "bimar");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "bimar";
sqlCommand1.Connection.Close();
sqlCommand1.CommandText = "select * from bimar where namebimar=" + "'" + comboBox7.Text + "'" + "and codepersonal=" + "'" + textBox1.Text + "'";
sqlCommand1.Connection.Open();
reader = sqlCommand1.ExecuteReader();
while (reader.Read() == true)
{
textBox7.Text = (string)reader["codepersonal"];
textBox3.Text = (string)reader["family"];
textBox4.Text = (string)reader["namebimar"];
break;
}
}
catch (Exception)
{
MessageBox.Show("چنين بيماري وجود ندارد");
}

}

ahmad_ir
سه شنبه 22 تیر 1389, 16:04 عصر
دوست عزيز اين نمونه كد را امتحان كن ببين چي كار مي كنه؟

private void button2_Click(object sender, EventArgs e)
{
try
{
SqlDataAdapter da = new SqlDataAdapter(sqlCommand1.CommandText, sqlConnection1.ConnectionString);
DataSet ds = new DataSet();
SqlDataReader reader;
da.Fill(ds, "bimar");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "bimar";
sqlCommand1.Connection.Close();
sqlCommand1.CommandText = "select * from bimar where namebimar=" + "'" + comboBox7.Text + "'" + "and codepersonal=" + "'" + textBox1.Text + "'";
sqlCommand1.Connection.Open();
reader = sqlCommand1.ExecuteReader();
while (reader.Read() == true)
{
textBox7.Text = (string)reader["codepersonal"];
textBox3.Text = (string)reader["family"];
textBox4.Text = (string)reader["namebimar"];
break;
}
}
catch (Exception)
{
MessageBox.Show("چنين بيماري وجود ندارد");
}

}
سلام
من وقتی برای درج از روش معمولی استفاده می کنم عملیات جستجو درست کار می کنه ولی وقتی از روش پارامتریک استفاده می کنم عمل جستجو انجام نمیشه و فقط برای حروف فارسی مشکل داره
ممنون می شم کمکم کنید