PDA

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



mahyar_k3
دوشنبه 19 دی 1390, 23:53 عصر
سلام به همه دوستان
امیدوارم این تاپیک مرجع خوبی باشه برای دوستانی که مشکلاتی مشابه مشکل من دارند.
من این تابع رو در سایتم نوشتم که در اصل یک رشته(نام کاربر) رو به عنوان پارامتر ورودی میگیره و فیلد ID که مربوط به رکورد مربوط به نام کاربر باشه رو بر میگردونه. این تابع از نظر کارایی فقط و فقط یک مشکل (اساسی) داره و اون اینه که اگه به عنوان رشته ای که به عنوان پارامتر ورودی به این تابع داده میشه فارسی باشه، این تابع قادر به پیدا کردن رکورد مربوط نیست.
من از SQL Server 2008 استفاده می کنم.
دوستان خواهش میکنم راهنمایی بفرمایید.

لینک سؤال در StackOverFlow.com (http://stackoverflow.com/questions/8793776/how-to-solve-this-sql-and-foreign-language-issue)

این هم کد تابع:

protected int GetThisUserID(string uname)
{
string returnvalue = "";
int returnintegervalue = -1;
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrin gs["OldEagleConnectionString"].ToString());
try
{

SqlCommand command = new SqlCommand("SELECT * FROM [Customers] WHERE ([Uname] = '" + uname + "')", connection);

connection.Open();
SqlDataReader reader = command.ExecuteReader();

if (reader.HasRows)
{
while (reader.Read())
{
returnvalue = reader["ID"].ToString();

returnintegervalue = Int32.Parse(returnvalue);
}
}
}
catch (SqlException ex)
{
Response.Write(ex.Message.ToString());
returnvalue = ex.Message.ToString();
}
finally
{
connection.Close();
SqlConnection.ClearPool(connection);
}
return returnintegervalue;
}

zarrinnegar
دوشنبه 19 دی 1390, 23:57 عصر
یک حرف N بزار بعد از [name] =
یعنی اینطوری

SqlCommand command = new SqlCommand("SELECT * FROM [Customers] WHERE ([Uname] = N'" + uname + "')", connection);