PDA

View Full Version : سوال: چرا این کد فارسی رو قبول نمیکنه؟؟؟؟



group45
شنبه 11 اردیبهشت 1389, 14:35 عصر
سلام به همه دوستان

یه نگاه به ایک کدا بندازید و بگید چرا وقتی میخوام با فامیل فارسی واردشم دیتا ادپتر مقدار رو بر نمی گردونه؟؟؟؟؟؟؟؟؟؟
دارم کلافه میشم!!!!!!!!!!!!!!!!!!!!!! تو خط famil = sdr["famil"].ToString();

string str = "select famil,pass,id from registerr where famil=\'" + textBox1.Text.Trim() + "\' and pass=\'" + textBox2.Text + "\'";
com.Connection = con;
com.CommandText = str;
con.Open();
SqlDataReader sdr = com.ExecuteReader();
sdr.Read();
try
{
famil = sdr["famil"].ToString();
pas = sdr["pass"].ToString();
id = int.Parse(sdr["id"].ToString());
sdr.Close();
con.Close();
a = 2;
this.Close();
}
catch
{
sdr.Close();
con.Close();
MessageBox.Show("فامیل کارمند یا کلمه عبور اشتباه وارد شده ", "اخطار");
}


با تشکر فراوان...................................... .

mehdi.mousavi
شنبه 11 اردیبهشت 1389, 15:06 عصر
سلام.

احتمالا بخاطر این خد از کد هستش:

string str = "select famil,pass,id from registerr where famil=N\'" + textBox1.Text.Trim() + "\' and pass=N\'" + textBox2.Text + "\'";

به حرف N که نشون دهنده Unicode بودن string هستش توجه کنید.

موفق باشید.

پاورقی: Dynamic SQL ها (یعنی ساختن SQL توسط Concatenate کردن string ها)، همواره در معرض تهدید SQL Injection هستش. روش صحیح، استفاده از Parametric Command هاست.

Saeed.Masoumi
شنبه 11 اردیبهشت 1389, 17:14 عصر
پاورقی: Dynamic SQL ها (یعنی ساختن SQL توسط Concatenate کردن string ها)، همواره در معرض تهدید SQL Injection هستش. روش صحیح، استفاده از Parametric Command هاست.
سلام
برای درک بهتر فرمایش جناب موسوی
به این لینک توجه کنید (http://barnamenevis.org/forum/showpost.php?p=790709&postcount=1)