PDA

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



veniz2008
سه شنبه 16 شهریور 1389, 17:23 عصر
سلام،من میخوام گزارش گیری بر اساس "نام و نام خانوادگی" داشته باشم(عنوان فیلد در جدول sql برابر name هستش و طولش رو هم 20 گرفتم)،واسه اسامی که انگلیسی ثبت میکنم بدون هیچ مشکلی گزارش گیری میکنم ولی اسامی رو که بصورت فارسی در جدول sql ثبت کردم با مشکل مواجه میشه و اونا رو نمیشناسه،مگر در 2 حالت:اول: وقتی مقادیر فارسی رو از جدول sql کپی و paste میکنم،اونو میشناسه و دوم:مثلا اگر بخوام واسه اسم "رضا"عمل گزارش گیری کنم باید بعد از تایپ کلمه "رضا" 17 بار دکمه space رو بزنم تا بتونه اونو تشخیص بده(تا برابر طول 20 که درواقع اندازه رشته من در sql هست بشه)،از تابع trimstart هم برای حذف فضاهای خالی پشت سر رشته ورودی استفاده کردم ولی مشکلم برطرف نمیشه،ممنون میشم راهنمایی کنید،اینم بخشی از کد برنامم:

SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "SELECT * FROM tell WHERE name=N'" + textBox1.Text + "'";
con.Open();


SqlDataReader reader = cmd1.ExecuteReader();

int i = 0;
while (reader.Read() == true)
{
if (textBox1.Text == reader["name"].ToString().TrimStart())
{

pedramfj
سه شنبه 16 شهریور 1389, 18:52 عصر
سلام
این کد مشکلت را حل می کنه فقط کافیه یه کم برنامت را تغیر بدی.
با درج در text همان لحظه جستجو میکنه ونمایش می دهد.


SqlConnection con;
SqlCommand com;
SqlDataReader dr;
con = new SqlConnection("Data Source=.;Initial Catalog=elmotose;Integrated Security=True");
con.Open();
if (textBox26.Text!="")
{

com = new SqlCommand("select name FROM information", con);
dr = com.ExecuteReader();
while (dr.Read())
{
if ((dr.GetString(0).Trim() == textBox26.Text.Trim()))
{
textBox8.Text =Convert.ToString (dr.GetInt64(1));

}


}

}

pedramfj
چهارشنبه 17 شهریور 1389, 10:33 صبح
دوست عزیز کد زیر را در برنامه جایگزین کن.

textbox8.text=dr.getsting(1).trim();