PDA

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



mahtab_18
جمعه 23 شهریور 1386, 09:02 صبح
سلام

من یه فرم طراحی کردم که توی اون رکورد جدیدی به جدول اضافه می کند . ولی مشکلی که هست اینه که اگر اطلاعات فارسی باشد ، به صورت علامت سوال در جدول نشان داده می شود. در حالی که اگر مستقیم به جدول در sql اطلاعات فارسی اضافه کنم این مشکل پیش نمی آید.

کسی هست که بدونه چگونه می تونم این مشکل را برطرف کنم ؟

bpzone
جمعه 23 شهریور 1386, 10:13 صبح
زبان Default Form رو به فارسی تغییر بده و بعد INSERT کن ...
کدی که برای فارسی کردن فرم نیاز داری



InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));


امیدوارم که مشکلت حل بشه

mahtab_18
جمعه 23 شهریور 1386, 14:19 عصر
خیلی ممنون از راهنماییتون . ولی مشکل من حل نشد.

bpzone
جمعه 23 شهریور 1386, 15:14 عصر
اگه برات امکان داره code فرمی رو که توش ایک مشکل برات پیش میاد رو بذار توی سایت !!

این مشکل رو توی تمام برنامه هات داری یا اینکه فقط توی یک فرم خاص هستش ؟!؟!

md_bluelily
جمعه 23 شهریور 1386, 21:25 عصر
فیلدهای داده ای در SQL رو که میخواهید در اون فارسی ذخیره کنید از نوع nvarchar بگیرید.

موفق باشید.

md_bluelily
جمعه 23 شهریور 1386, 21:29 عصر
در ضمن فراموش نکنید که برای Insert در Database از این شیوه استفاده کنید:

]Insert Into myTable Values N'آزمایش'

موفق باشید.

md_bluelily
جمعه 23 شهریور 1386, 21:30 عصر
در ضمن فراموش نکنید که برای Insert در Database از این شیوه استفاده کنید:

]Insert Into myTable Values N'آزمایش'

موفق باشید.

mahtab_18
جمعه 23 شهریور 1386, 21:56 عصر
خیلی ممنون از توجهتون .
این هم از کد که خواسته بودین




SqlCommand com = newSqlCommand();
SqlConnection con = newSqlConnection("Data Source=WE\\SQLEXPRESS;Initial Catalog=amlak;Integrated Security=True");
con.Open();
com.Connection = con;
com.CommandText = "INSERT INTO USER_PASS(name,pass,namekh,famil,secu)VALUES('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox4.Text + "','" + textBox5.Text + "'," + y + ")";
com.ExecuteNonQuery();




من یه دستور insert دیگه هم دارم که یکی از فیلد های جدولم ورودی خودش را از یک ComboBox می گیرد و بقیه از textbox جالب این جاست که اطلاعات فارسی ComboBox بدرستی درون جدول sql ذخیره می شود ، ولی اطلاعات فارسی textbox همه بصورت علامت سوال ؟؟؟؟؟ ذخیره می شوند.

bpzone
شنبه 24 شهریور 1386, 00:33 صبح
com.CommandText = "INSERT INTO USER_PASS(name,pass,namekh,famil,secu)VALUES('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox4.Text + "','" + textBox5.Text + "'," + y + ")";


اول از همه یک پیشنهاد
من اگه جای شما بودم ، دستور بالا رو به شکل زیر می نوشتم



com.CommandText = string.Format("INSERT INTO USER_PASS(name,pass,namekh,famil,secu)VALUES('{0}' ,'{1}','{2}','{3}',{4})",textBox1.Text,textBox2.Text,textBox4.Text,textBox 5.Text,y);


نوع متغیرهای دیتابیس رو چی انتخاب کردید !؟!؟

hdv212
شنبه 24 شهریور 1386, 01:23 صبح
اگه از Stored Procedure استفاده کنی هم این مشکلت حل میشه و هم سرعت بالاتری داره.

choobin84
شنبه 24 شهریور 1386, 04:26 صبح
زبان Default Form رو به فارسی تغییر بده و بعد INSERT کن ...
کدی که برای فارسی کردن فرم نیاز داری



InputLanguage.CurrentInputLanguage = InputLanguage.FromCulture(System.Globalization.Cul tureInfo.CreateSpecificCulture("fa-IR"));
امیدوارم که مشکلت حل بشه

این کد صفحه کلید را برای فرم یا هر چیز دیگه فارسی می کنه نه بانک اطلاعاتی را.

abolfazl585
شنبه 24 شهریور 1386, 08:35 صبح
سلام اگه کدها را به این شکل تغییر دهید حتما درست می شود:

com.CommandText = string.Format("INSERT INTO USER_PASS(name,pass,namekh,famil,secu) VALUES (N'{0}',N'{1}',N'{2}',N'{3}',{4})", textBox1.Text,textBox2.Text,textBox4.Text,textBox5 .Text,y);

mahtab_18
شنبه 24 شهریور 1386, 20:26 عصر
متغیر های من از نوع nvarchar(50) هستند . در ضمن من طریقه استفاده از stored procedure را بلد نیستم .

یعنی هیچکس تا حالا به این مشکل بر نخورده ؟؟؟؟؟؟؟؟؟؟؟؟/

mahtab_18
شنبه 24 شهریور 1386, 20:32 عصر
سلام اگه کدها را به این شکل تغییر دهید حتما درست می شود:

com.CommandText = string.Format("INSERT INTO USER_PASS(name,pass,namekh,famil,secu) VALUES (N'{0}',N'{1}',N'{2}',N'{3}',{4})", textBox1.Text,textBox2.Text,textBox4.Text,textBox5 .Text,y);


با سلام و تشکر به خاطر جوابی که دادین
مشکل من با استفاده از این کد حل شد ولی متوجه نشدم چرا دستوری که خودم نوشتم ایراد داشت . چون من تمام برنامه های قبلی ام را با استفاده از این دستور می نوشتم و هیچ ایرادی هم نداشتند.

mahtab_18
شنبه 24 شهریور 1386, 20:37 عصر
اگه میشه بگین چه تغییری باید در این ایجاد شود



com.CommandText = "INSERT INTO sabtmelk(malek,telm,mobilem,addmelk)" +
"VALUES(@malek,@telm,@mobilem,@addmelk)";
com.Parameters.Add("@malek", SqlDbType.NVarChar, 50).Value = t3.Text;
com.Parameters.Add("@telm", SqlDbType.NVarChar, 50).Value = t5.Text;
com.Parameters.Add("@mobilem", SqlDbType.NVarChar, 50).Value = t6.Text;
com.Parameters.Add("@addmelk", SqlDbType.NVarChar, 50).Value = t7.Text;


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

mahtab_18
شنبه 24 شهریور 1386, 23:40 عصر
اگه کسی می دونه در کد پست قبلی چه تغییری باید ایجاد کنم لطفا بگه ؟
پروژه من به خاطر این موضوع به مشکلات زیادی برخورده

Amir Oveisi
یک شنبه 25 شهریور 1386, 00:01 صبح
شدیدا پیشنهاد میکنم از Stored Procedure استفاده کنید!
(چیزی که کمتر دیده میشه بین دوستان! )
خیلی ساده هم هست درست کردنش! بدون نیاز به کد نویسی! (واسه کارایه معمولی)
کافیه از Designer فایل XSD تون استفاده کنید.
موفق باشید

federrer
یک شنبه 25 شهریور 1386, 08:31 صبح
شدیدا پیشنهاد میکنم از Stored Procedure استفاده کنید!


کافیه از Designer فایل XSD تون استفاده کنید.


این روشی که میگی رو میشه یه کم توضیح بدی ؟؟؟

Amir Oveisi
یک شنبه 25 شهریور 1386, 13:42 عصر
وقتی که یه database رو بعنوان datasource تو برنامتون انتخاب میکنید یه فایل با پسوند xsd به solution شما اضافه میشه. رو اون right-click کنین و view designer رو انتخاب کنید.
یه جول نشون میده که ستون های database و نیز توابعی رو که برای اون هستن رو نشون میده.
واسه اضافه کردن یه stored procedure کافیه رو اون جدول right-click کنین و Add query رو انتخاب کنین. یه wizard ظاهر میشه که با دنبال کردن مراحلش میتونین به سادگی یه stored procedure به database اضافه کنید
موفق باشید

ok.baby
شنبه 07 بهمن 1391, 11:32 صبح
سلام

من یه فرم طراحی کردم که توی اون رکورد جدیدی به جدول اضافه می کند . ولی مشکلی که هست اینه که اگر اطلاعات فارسی باشد ، به صورت علامت سوال در جدول نشان داده می شود. در حالی که اگر مستقیم به جدول در sql اطلاعات فارسی اضافه کنم این مشکل پیش نمی آید.

کسی هست که بدونه چگونه می تونم این مشکل را برطرف کنم ؟

شما زمانی که داری توی sql دیتابیس رو میسازی ، به قسمت option برو و اونجا خاصیت collation رو arabic انتخاب کن.
مشکل علامت سوالی شدن حروف فارسی حل میشه ...

( با توجه به تاریخ سوال شما، جواب رو برای بعدی هایی که با گوگل اینجا میان نوشتم :لبخند: )