PDA

View Full Version : سوال: مشکل زبان فارسی در ورود اطلاعات به دیتابیس



dentmoc
یک شنبه 04 اردیبهشت 1390, 17:43 عصر
با درود
من یه برنامه نوشتم که یک دیتاگریدویو حاوی اطلاعاتی که از دیتابیس اس کیو ال میگیره رو نمایش میده. کاربر میتونه روی هر سل کلیک و ویرایشش کنه. مشکلم در اینه که وقتی از executenonquery برای update استفاده میکنم به جای حروف فارسی که کاربر وارد میکنه فقط علامت سوال (؟؟؟؟؟؟) ذخیره میشه. ستون اول primary Key و int بوده و مابقی ستونها همه string هستند. در خود اس کیو ال هم collation را عربی کردم. قبلا یک برنامه نوشته بودم که فقط با حروف ی و گ مشکل داشت ولی این نمیدونم چشه که با همه ی حروف مشکل داره. اینم بگم که قبل از اینکه بخوام از executenonquery استفاده کنم از commandbuilderوdataadapter استفاده میکردم ولی مشکل عجیبی که داشت این بود که آخرین سطری که تغییر میکرد تغییراتش ثبت نمیشد. مثلا اگر ۵ سطر را تغییر میدادید و بعد update میکردید فقط ۴ سطر اولی که تغییر دادید در دیتابیس ثبت میشد.

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{

string us1 = "UPDATE temp SET ";

for (int i = 1; i < dataGridView1.CurrentRow.Cells.Count; i++)
{
us1+=dataGridView1.CurrentRow.Cells[i].OwningColumn.HeaderCell.Value.ToString()
+"='"+dataGridView1.CurrentRow.Cells[i].Value.ToString()+"',";
}
us1=us1.Remove(us1.Length-1 );
us1 += " WHERE "+dataGridView1.CurrentRow.Cells[0].OwningColumn.HeaderCell.Value.ToString()
+ "=" + dataGridView1.CurrentRow.Cells[0].Value.ToString();
sqlcommand = new SqlCommand(_us1, sqlconnection);
sqlcommand.ExecuteNonQuery();

majid325
یک شنبه 04 اردیبهشت 1390, 17:57 عصر
قبل از مقدار 'N' بزار

dentmoc
یک شنبه 04 اردیبهشت 1390, 22:18 عصر
ممنون مشکلم حل شد. میشه یه توضیح کوچیک بدی یا یه لینک که بفهمم چی شده؟ یه چیزی شبیه casting هست؟