View Full Version : سوال: عدم شناسایی فیلدهای فارسی برای عمل گزارش گیری
veniz2008
یک شنبه 14 شهریور 1389, 17:05 عصر
سلام دوستان،من میخوام واسه پروژه دفترچه تلفن خودم براساس تلفن و "نام و نام خانوادگی" گزارش گیری کنم،گزارش گیری بر اساس شماره تلفن رو بدون مشکل انجام میدم ولی وقتی جستجو رو براساس نام و نام خانوادگی انجام میدم،فیلدهای نام و نام خانوادگی رو که بصورت فارسی در sql ذخیره شدن نمیشناسه،(کلا جستجو براساس هیچ فیلد فارسی دیگه ای رو هم تشخیص نمیده)،از کد زیر هم برای جستجو استفاده میکنم:
if (textBox1.Text == reader["name"].ToString().TrimStart())
Saman Hashemi
یک شنبه 14 شهریور 1389, 17:29 عصر
سلام دوستان،من میخوام واسه پروژه دفترچه تلفن خودم براساس تلفن و "نام و نام خانوادگی" گزارش گیری کنم،گزارش گیری بر اساس شماره تلفن رو بدون مشکل انجام میدم ولی وقتی جستجو رو براساس نام و نام خانوادگی انجام میدم،فیلدهای نام و نام خانوادگی رو که بصورت فارسی در sql ذخیره شدن نمیشناسه،(کلا جستجو براساس هیچ فیلد فارسی دیگه ای رو هم تشخیص نمیده)،از کد زیر هم برای جستجو استفاده میکنم:
if (textBox1.Text == reader["name"].ToString().TrimStart())
دوست عزیز این سوال مربوط به قسمت بانک های اطلاعاتی است.
در دستور زیر به قسمت قرمز توجه کنید.
SELECT * FROM table WHERE fields=N'value'
veniz2008
یک شنبه 14 شهریور 1389, 21:26 عصر
دوست عزیز این سوال مربوط به قسمت بانک های اطلاعاتی است.
در دستور زیر به قسمت قرمز توجه کنید.
SELECT * FROM table WHERE fields=N'value'
کدی رو که گفتید امتحان کردم ولی مشکل همچنان با فیلدهای فارسی پابرجاست.دوستان راهنمایی کنید،تشکر.
veniz2008
دوشنبه 15 شهریور 1389, 01:55 صبح
آقا کسی پیدا نشد ایراد کار ما رو بگه؟
ASPX
دوشنبه 15 شهریور 1389, 08:21 صبح
كدsql كه معرفي شد مشكلي نداره احتمالا كد سي شارپي ات غلطه اونو بذار
shirko_r
دوشنبه 15 شهریور 1389, 09:24 صبح
سلام
دوست عزیز
اکه منظورتون اینه که اسم فیلدتون ارسی هستش (نه اطلا عات وارد شده ) باید بگم که شما نفر اولی هستین که اسم فیلدهاشو فارسی انتخاب میکنه ...اگه این کار کردین( که امیدوارم من بد متوجه شده باشم ...) باید عرض کنم که این اولین مشکلتون نخواهد بود ...حداقل از فنگلیش استفاده فرمایید
ASPX
دوشنبه 15 شهریور 1389, 09:38 صبح
منم فكر كنم همچين كاري كرده !
veniz2008
دوشنبه 15 شهریور 1389, 11:29 صبح
منم فكر كنم همچين كاري كرده !
نه عزیزان،عنوان فیلد در sql بصورت انگلیسی هستش(اسم فیلد name هستش)،مقادیر وارد شده رو بصورت فارسی وارد کردم،مثلا"رضا خجسته"،حالا وقتی در textbox1 مقدار "رضا خجسته" رو وارد میکنم،اونو شناسایی نمیکنه،ولی اگه یه نام انگلیسی ثبت کنم مثلا "reza khojaste" و بعدش این نام انگلیسی رو جستجو میکنم،شرط برقرار میشه،حالا به نظرتون مشکل کجاست؟اینم بخشی از کد برنامه(tell نام جدول ثبت تلفن هاست،فیلد نام رو در sql از نوع nchar
cmd.Connection = con;
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "SELECT * FROM tell";
con.Open();
SqlDataReader reader = cmd1.ExecuteReader();
int i = 0;
while (reader.Read() == true)
{
if (textBox1.Text == reader["name"].ToString().TrimStart())
{
ASPX
دوشنبه 15 شهریور 1389, 12:26 عصر
دوست عزيز منطق برنامت اشتباهست
if (textBox1.Text == reader["name"].ToString().TrimStart())
لزومي نداره تو همه رديفها رو با كد c# بخوني تا با if كلمه مورد نظرت رو پيدا كني
اين كار رو بذار sql برات انجام بده
cmd.Connection = con;
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = con;
cmd1.CommandText = "SELECT * FROM tell where column=N'"+textBox1.Text+"'";
con.Open();
SqlDataReader reader = cmd1.ExecuteReader();
....
حالا يك reader داري كه فقط با جستجوي تو فيلتر شده و همه رديفهاش خونده نشده
كار شما باعث كاهش Performence برنامه ميشه....
در ضمن يادت باشه بين حروف ي(نقط دار عربي) و ی و همچنين حرف ك اس كيو ال موقع سرچ دچار مشكل ميشه
veniz2008
سه شنبه 16 شهریور 1389, 13:24 عصر
کد رو بصورت زیر تغییر دادم ولی مشکل برای فیلدهای فارسی پابرجاست
cmd.Connection = con;
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())
{
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.