PDA

View Full Version : سوال: ذخیره علامت سوال در بانک به جای حروف فارسی



Rezakakaei
یک شنبه 07 اردیبهشت 1393, 22:40 عصر
سلام و خسته نباشید ببخشید یک سوالی

من یک برنامه دارم مینوسم الان هر چی اطلاعات میخوام ذخیره کنم علامت سوال ذخیره میشه با این که فیلد داخل sql به صورت nvarchar(50) هستش

کد ذخیره داخل ویژال هم اینه


(میدونم کد نویسیش حرفه ایی نیس ولی خوب این طوری بلدم

کسی هست راهنمایی کنه


if ((Tdaftar.Text == "") || (Shdaftar.Text == "") || (Girande.Text == "") || (Mozo.Text == "") || (Sharh.Text == ""))
{
MessageBox.Show("خطر", "مقدیر مورد نیاز را وارد کنید .");
}
else
{



da.SelectCommand.CommandText = "SElect * from insabt Where numberdaftar = " + Shdaftar.Text.Trim();
ds.Clear();
da.Fill(ds, "t1");
if (ds.Tables["t1"].Rows.Count > 0)
{
MessageBox.Show("این کد موجود میباشد ");



}



else
{
if (radioButton1.Checked == true)
{
int p = 1;
cmd.CommandText = "Insert Into insabt (Datedaftar,Datesystem,numberdaftar,girande,mozo,s harh,payvast,sharhp,tasvir) Values('" + Tdaftar.Text.Trim() + "', '" + Temrooz.Text.Trim() + "','" + Shdaftar.Text.Trim() + "','" + Girande.Text.Trim() + "','" + Mozo.Text.Trim() + "','" + Sharh.Text.Trim() + "','" + p + "','" + Sharhp.Text.Trim() + "','" + filename + "' )";
con.Open();
cmd.ExecuteNonQuery();
con.Close();
ds.Clear();
da.Fill(ds, "t1");
MessageBox.Show("عملیات ثبت با موفقیت انجام شد", "موفقیت");

}
else
{
if (radioButton2.Checked == true)
{
int p = 0;
cmd.CommandText = "Insert Into insabt (Datedaftar,Datesystem,numberdaftar,girande,mozo,s harh,payvast) Values('" + Tdaftar.Text.Trim() + "', '" + Temrooz.Text.Trim() + "','" + Shdaftar.Text.Trim() + "','" + Girande.Text.Trim() + "','" + Mozo.Text.Trim() + "','" + Sharh.Text.Trim() + "','" + p + "' )";
con.Open();
cmd.ExecuteNonQuery();
con.Close();
ds.Clear();
da.Fill(ds, "t1");
MessageBox.Show("عملیات ثبت با موفقیت انجام شد", "موفقیت");
}
}

}
}

m4prog
یک شنبه 07 اردیبهشت 1393, 22:57 عصر
جدول برنامه را بررسی کن یا یه جدول جدید بساز فقط نوعش را nvarchar در نظر بگیر تا فارسی هم ذخیره کنه

mortezasar
یک شنبه 07 اردیبهشت 1393, 22:59 عصر
سلام از چه نوع بانکی استفاده می کنید ؟

mortezasar
یک شنبه 07 اردیبهشت 1393, 23:10 عصر
کدت رو به این صورت تغییر بده


cmd.CommandText = "Insert Into insabt (Datedaftar,Datesystem,numberdaftar,girande,mozo,s harh,payvast,sharhp,tasvir) Values(N'" + Tdaftar.Text.Trim() + "',N '" + Temrooz.Text.Trim() + "',N'" + Shdaftar.Text.Trim() + "',N'" + Girande.Text.Trim() + "',N'" + Mozo.Text.Trim() + "',N'" + Sharh.Text.Trim() + "',N'" + p + "',N'" + Sharhp.Text.Trim() + "',N'" + filename + "' )";

modern_amin
دوشنبه 08 اردیبهشت 1393, 13:35 عصر
فیلد رو nvarchar کن و دیتابیستم فارسی کن persian
تو کدهاتم تو سی شارپ قبلش مقداردهی N بزار

ahangari365
دوشنبه 08 اردیبهشت 1393, 14:07 عصر
ببین اشکالت تو بانک هست، در ساختار جدول، باید بری توی SQL server رو بانکت کلیک راست کنی و قسمت properties بانک بعد قسمت چپ option رو بزنی ببینی زبان بانکت رو لاتینه یا پرشین یا اربیک.اگه لاتین بود برو ساختار تمام جداولت رو به nvarcharتغییر بده تا داده ها یونیکد ذخیره بشن .

fereshte_b
پنج شنبه 05 تیر 1393, 10:10 صبح
سلام دوستان
مشکل من اینه که واسه جدولم یه کوئری ساختم و سپس رستور زیر رو برای درج ازلاعات در دیتابیس استفاده کردم
اما وقتی اطلاعات فارسی تو تکست باکس هام وارد میکنم ، توی دیتابیسم به صورت ؟؟؟ میاد
چیکار کنمکه حل شه

اینم کدم توی دکمه درج اطلاعات
sabtTableAdapter.InsertQuery(Convert.ToInt32(tb1.T ext), textBox1.Text, textBox2.Text,textBox3.Text,textBox4.Text,Convert. ToInt64(textBox5.Text),textBox6.Text,Convert.ToInt 64(textBox7.Text),textBox9.Text,Convert.ToInt64(te xtBox8.Text);

sabtTableAdapter.Fill(database1DataSet2.sabt);

مثلا تکس باکس 1 و 2 اوناییس که اطلاعات فارسی توش وارد میشه

hamid_hr
پنج شنبه 05 تیر 1393, 10:15 صبح
نوع فیلدو باید NVarchar بگیری

fereshte_b
پنج شنبه 05 تیر 1393, 10:21 صبح
آره گرفتم ولی بازم مشکل داره

amir200h
پنج شنبه 05 تیر 1393, 10:41 صبح
زبان دیتابیس رو روی persian 100 bin قرار بدید

fereshte_b
پنج شنبه 05 تیر 1393, 10:44 صبح
من از دیتابیس خود سی شارپ استفاده میکنم و همچین فرمی برام نمیاد؟؟؟

khokhan
پنج شنبه 05 تیر 1393, 11:24 صبح
من از دیتابیس خود سی شارپ استفاده میکنم و همچین فرمی برام نمیاد؟؟؟

کدهای مربوط به درج اطلاعات رو تغییر بدین و از پارامتر ها استفاده کنین

if (radioButton1.Checked == true)
{
int p = 1;
cmd.CommandText = "Insert Into insabt (Datedaftar,Datesystem,numberdaftar,girande,mozo,s harh,payvast,sharhp,tasvir) Values( @Datedaftar,@Datesystem,@numberdaftar,@girande,@mo zo,@sharh,@payvast,@sharhp,@tasvir )";
cmd.Parameters.Add("@param1", SqlDbType.NVarChar, 50).value = Tdaftar.Text.Trim();
cmd.Parameters.Add("@param2", SqlDbType.NVarChar, 50).value = Temrooz.Text.Trim();
cmd.Parameters.Add("@param3", SqlDbType.NVarChar, 50).value = Shdaftar.Text.Trim();


//....
//....
//الی آخر
con.Open();
cmd.ExecuteNonQuery();
con.Close();
ds.Clear();
da.Fill(ds, "t1");
MessageBox.Show("عملیات ثبت با موفقیت انجام شد", "موفقیت");

}

H:Shojaei
شنبه 04 مرداد 1393, 02:19 صبح
سلام دوستان...
یه سری اطلاعات واسه تست تو دیتابیس اضافه کردم به صورت دستی تو خود sql server که نمایش دادم درست بود و به شکل اصلی نمایش داده میشدن
ولی اطلاعاتی که از طریق برنامه اضافه میکنم به صورت علامت سوال میان چکار کنم؟؟
callation دیتابیس رو هم پیشفرض خود sql server گذاشتم باید تغییرش بدم؟؟
ممنون

ghazal_mohammady
شنبه 04 مرداد 1393, 02:27 صبح
عرض ادب
تنظیمات دیتابیس رو بذارید رو uft-8 ، دیگه چیز دیگه ای لازم نیست.

H:Shojaei
شنبه 04 مرداد 1393, 02:30 صبح
ممنون ولی خوب چطوری!!
روی چی تنظیمش کنم درست میشه؟؟

حميدسي شارپ
شنبه 04 مرداد 1393, 02:31 صبح
سلام.
آیا collation پیشفرض sql serverتون persian_100_ci_as هست؟

H:Shojaei
شنبه 04 مرداد 1393, 02:39 صبح
خیر نیست الآن میخوام تغییرش بدم نمیذاره چکارش کنم؟؟

محمد آشتیانی
شنبه 04 مرداد 1393, 02:39 صبح
سلام
تو کوئری قبل از مقدار یدونه N بذار حل میشه (این داستان به خاطر یونیکده) ، به این ترتیب



INSERT INTO YourTable (field1, field2) VALUES (N'مقدار فیلد', N'مقدار فیلد')

ghazal_mohammady
شنبه 04 مرداد 1393, 02:44 صبح
http://barnamenevis.org/showthread.php?227123-%D9%85%D8%B4%DA%A9%D9%84-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AF%D8%B1-SQL-SERVER

H:Shojaei
شنبه 04 مرداد 1393, 03:04 صبح
دوستان ممنون از راهنمایی ولی الآن من میخوام callotion دیتابیس رو عوض کنم به جای این که این N رو اضافه کنم و واسه عوض کردن callation هم خطا میده چطور خطا رو دور بزنم یا رفعش کنم؟؟
خطاش اینه که میگه alter failed for database
ممنون

حميدسي شارپ
شنبه 04 مرداد 1393, 03:28 صبح
منم خواستم collation رو عوض کنم همین خطارو داد.ولی به بعضی زبونای خاص فقط گیر میده.collationپیش فرض دیتابیستون چی بود؟

H:Shojaei
شنبه 04 مرداد 1393, 04:08 صبح
ممنون حل شد...
کوئری های ساخت تیبل ها رو برداشتم دیتابیس رو حذف کردم یکی با کالشن جدید ساختم کوئری ها رو اجرا کردم و تیبلها به دیتابیس جدید اضافه شد...

امیر مهرشاد
چهارشنبه 08 مرداد 1393, 23:40 عصر
حتی توی اکسپرس هم که بخوای استفاده کنی همانطور که دوستان اشاره کردند با یک N بزگ مشکلت حل میشد ولی توی نسخه r2 این موضوع کاملا حل شده است

pari_sepehry
دوشنبه 05 مرداد 1394, 11:20 صبح
من یک برنامه نوشتم که یک دیتا بیس براش طراحی کردم.حالا وقتی اجرا می کنم و میخوام بهش مقداربدم.وقتی فارسی تایپ می کنم همش علامت سوال میزنهhttp://www.iran-eng.com/images/smilies/icon_redface.gifhttp://www.iran-eng.com/images/smilies/frown.gif
چرا؟؟؟؟؟؟
لطفا جواب منو بدید!!

RmeXXXXXXXXX
دوشنبه 05 مرداد 1394, 11:24 صبح
نوع داده ای N رو استفاده کنید:
N'your persianStringValue'
و بصورت کلی موقع تعریف داد بجای varchar از nvarchar استفاده نمائید.

pari_sepehry
دوشنبه 05 مرداد 1394, 11:50 صبح
خوب از نوع nvarcharتعریف کردم:افسرده:

TeacherMath
دوشنبه 05 مرداد 1394, 13:11 عصر
باید collation دیتابیس را به Persian_CI_100_AS تغییر دهید.

alireza264
دوشنبه 05 مرداد 1394, 22:43 عصر
سلام
فکر کنم مشکل در فارسی کردن ویندوزته . احتمالا موقع فارسی کردن کیبورد به جای Fa از Fas استفاده میکنی

pbm_soy
دوشنبه 05 مرداد 1394, 23:46 عصر
مراحل زیر را باید رعایت کنید
اول از همه ویندوزتون فارسی باشد و تنظیمات مربوط به زبانهای کشورهای خاورمیانه یا از راست به چپ را کامل انجام دهید
دوم در زمان ایجاد دیتابیس میتوانید collation دیتابیس را از بخش options بصورت persian تنظیم کنید
و یا اینکه دیتابیس را بصورت پیش فرض درست کنید و فیلدهای متنی را از نوع n انتخاب کنید مانند nchar
Nvarchar
Ntext
ودر برنامه نویسی در زمان ذخیره داده قبل از مقدار فیلد علامت n را بگذارید مانند
Family =n'alavi'

mehdi0020
شنبه 01 اسفند 1394, 06:14 صبح
سلام من هرچی گشتم نتونستم مشکلمو جل کنم
من یه برنامه با دیتابیس xpress 2010 دارم که زمان insert اطلاعات فارسی مشکل ندارم فقط تو زمان update اطلاعات ؟؟؟ ذخیره میشه

CsharpNevisi
شنبه 01 اسفند 1394, 06:25 صبح
کد اپدیتت رو بذار

mehdi0020
شنبه 01 اسفند 1394, 06:26 صبح
کد اپدیتت رو بذار

SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=""D:\Programming Technical Support\Programming Technical Support\Stopdb.mdf"";Integrated Security=True;User Instance=True");
SqlCommand stredit=new SqlCommand(@"Update [user] Set name= '" + txtnamechang.Text +" 'where idpersonal='"+txidpersonamchang.Text+"'");
con.Open();
stredit.Connection = con;
stredit.ExecuteNonQuery();
con.Close();
MessageBox.Show("تغییرات اعمال شد");

محمد رضا فاتحی
شنبه 01 اسفند 1394, 06:29 صبح
دوستان...خواهشا قبل از ایجاد یه سرچ کوچولو بکنید...
برای رفع مشکلتون یا از پارامتر استفاده بکنید یا قبل از مقادیر N بزارید

mehdi0020
شنبه 01 اسفند 1394, 06:34 صبح
"Update [user] Set name= '" + txtnamechang.Text +" 'where idpersonal='"+txidpersonamchang.Text+"'"
سرچ گردم ولی به جواب نرسیدم ...
N کجا قرار بدم؟ منظور از پارامتر چیه؟ اگه بلد بودم که سوال نمیپرسیدم اخوی

محمد رضا فاتحی
شنبه 01 اسفند 1394, 06:46 صبح
دوست عزیزم...
این جواب شما

"Update [user] Set name= N'" + txtnamechang.Text +" 'where idpersonal='"+txidpersonamchang.Text+"'"


در مورد پارامترهم می تونی اینکار رو انجام بدی...

string command = "update tbl set name=@name where idpersonal=@id";
SqlCommand com=new SqlCommand(command,con);
com.Parameters.AddWithValue("name", textBox1.Text);
com.Parameters.AddWithValue("id", txtid.Text);
com.ExecuteNonQuery();


در ضمن اینم برای سرچ که به جواب نرسیدی
http://barnamenevis.org/showthread.php?14084-%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%B9%D9%84%D8%A7%D9%85%D8%AA-%D8%B3%D9%88%D8%A7%D9%84-%D8%A8%D9%87-%D8%AC%D8%A7%DB%8C-%D8%AD%D8%B1%D9%88%D9%81-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%AF%D8%B1-sql-server

http://www.behzadim.ir/post/35


پارامتر:
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.parameters(v=vs.1 10).aspx
http://www.dotnetperls.com/sqlparameter

کافیه باGoogle.com دوست بشید