View Full Version : نمایش ؟؟؟؟ به جای مقدار
sg.programmer
پنج شنبه 22 بهمن 1388, 17:26 عصر
چرا من وقتی از طریق Appliction یک داده را به جدول اضافه می کنم علامت ؟؟؟ بجای آن قرار می گیرد
همین کد را در Access می نویسم درست ذخیره میشه
البته اگه از خود MySql دیتای Insert می کنم بازم صحیح ذخیره میشه
اساتید MySQL لطفا کمکم کنید
تشکر
mshakeri
شنبه 24 بهمن 1388, 17:05 عصر
قبل از وارد کردن هر مقدار یک حرف "N" به آن اضافه کن.مثلا:
insert into table1(field1) values("N"+'parameter')
Reza1607
شنبه 08 اسفند 1388, 09:15 صبح
دوست عزیز mshakeri میشه توضیح بدین که برای چی باید قبل هر رشته کاراکتر N رو اضافه کرد
mshakeri
شنبه 08 اسفند 1388, 17:24 عصر
ببخشید از اینکه دیر تونستم جواب بدم.
من دستور
insert into table1(field1) values("N"+'parameter')
را در sql server اجرا کردم و جواب هم داد و فکر می کردم برای MySQL هم جواب میده اما نداد.
اما راه حلش اینه که برای هر بار اجرای دستورات insert و update قبل از این دستورات دستورات زیر را اجرا کنید:
SET NAMES 'utf8';
SET CHARACTER SET utf8;
و بعد از این دستورات بلافاصله دستورات insert و update را اجرا کنید.
Reza1607
چهارشنبه 19 اسفند 1388, 09:21 صبح
میشه توضیح بدید چجوری باید connection collation رو ست کرد
mshakeri
چهارشنبه 19 اسفند 1388, 09:37 صبح
کد:
ALTER TABLE `db name`.`table name` CHARACTER SET utf8 COLLATE utf8_persian_ci;
Sajjad.Aghapour
جمعه 28 اسفند 1388, 21:36 عصر
دوست عزیز mshakeri میشه توضیح بدین که برای چی باید قبل هر رشته کاراکتر N رو اضافه کرد
این امکان در SQL Server برای Unicode استفاده میشه.اگر شما از Unicode های 16 بیتی استفاده میکنید مجبور به استفاده از N در کوئری خود خواهید بود...
البته این هم هستش ولی باید connection collation رو برابر utf8_unicode_ci بزارید , یا persian !
در مورد persian collation فکر میکنم باگ های زیادی گزارش شده.هم تو MySql و هم تو SQL Server 2008. بهتر هست از همون utf8_arabic_ci استفاده کنید...
sonia_1368
سه شنبه 10 فروردین 1389, 09:02 صبح
سلام دوستان ، این مشکل واسه خود من هم پیش اومده بود ، به نظر من بهترین راه حل در زمان نصب mysql وقتی میخواید سرور رو تنظیم کنید برید و detailed configuration رو انتخاب کنید و اونجا یکی از بخشها تنظیم زبان هستش که پیشفرض رو لاتینه که بکنید utf8
Shahram_Shobeiri
جمعه 13 فروردین 1389, 21:07 عصر
ببخشید از اینکه دیر تونستم جواب بدم.
من دستور
insert into table1(field1) values("N"+'parameter')را در sql server اجرا کردم و جواب هم داد و فکر می کردم برای MySQL هم جواب میده اما نداد.
اما راه حلش اینه که برای هر بار اجرای دستورات insert و update قبل از این دستورات دستورات زیر را اجرا کنید:
SET NAMES 'utf8';
SET CHARACTER SET utf8;
و بعد از این دستورات بلافاصله دستورات insert و update را اجرا کنید.
لازم نیست برای هر insert و update این دستورات رو تکرار کنید. بعد از باز کردن connection یک بار اجرای این دستورات کفایت می کنه.
vahidhatefi
چهارشنبه 15 اردیبهشت 1389, 02:10 صبح
من با اجرای این دستور در Grid به جای عنوان هر ستون علامت ???? نشون میده.
"select name as '',family as ' ',NFather as ' ',NPassport as '.',Age as '',GroupAge as ' ',TelHome as '',Telmobile as ' ',IDK as ' ' from tblmember where family='" + txtSearch.Text + "'"
که در هر کدام از '' یک کلمه فارسی قرار دادم
Reza1607
چهارشنبه 15 اردیبهشت 1389, 09:47 صبح
من روشی رو که آقا mshakeri مطرح کردن رو انجام دادم ولی موقعی که داخل جدول با استفاده از application یه چیزی رو insert می کنم علامت ؟؟؟ درج می کنه
ولی من با استفاده از odbc تونستم عمل درج رو درست انجام بدم
mshakeri
جمعه 17 اردیبهشت 1389, 18:53 عصر
سلام به همه دوستان
شما ابتدا باید در قسمت MySQL Server Instance Config Wizard مربوط به تنظیمات اولیه MySQL در بخش مربوط به انتخاب default character set گزینه manual selected default charachter set/collation را انتخاب کرده و در قسمت انتخاب charachter set گزینه utf8 را انتخاب کنید.
حالا برای ساخت جدول باید به صورت زیر عمل کنید:
CREATE TABLE `dbname`.`tablename` (
`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
`field1` VARCHAR(45) NOT NULL,
`field2` VARCHAR(45) NOT NULL,
PRIMARY KEY (`id`)
)
ENGINE = InnoDB
CHARACTER SET utf8 COLLATE utf8_general_ci;
در سی شارپ هم از کد زیر استفاده کردم:
MySqlConnection conn = new MySqlConnection("Data Source=localhost;User ID=root;database=dbname;password=mypass");
MySqlCommand comm = new MySqlCommand("insert into personal(field1,field2)values('" + textBox1.Text + "','" + textBox2.Text + "')", conn);
comm.CommandType = CommandType.Text;
conn.Open();
comm.ExecuteNonQuery();
conn.Close();
موفق باشید.
mohammad-gh
یک شنبه 16 آبان 1389, 11:54 صبح
متاسفانه به هیچکدام از این روشها مشکل من حل نشد
من فیلد مربوز رو utf کردم، جدول رو utf کردم ، بانک رو هم utf کردم
ولی باز هم به جای کارکترها ??? نشون میده
قبل از اجرای دستورات هم دو دستور گفته شده رو زذم
این هم کدهای من
Dim stutable As New DataTable
objDataAdapter = New SqlDataAdapter("select * from student where web=0", objConnection)
objConnection.Open()
objDataAdapter.Fill(stutable)
objConnection.Close()
'------------------------------
Dim objComm2 As MySqlCommand = New MySqlCommand()
objComm2.Connection = webcon
objComm2.CommandText = "SET NAMES utf8"
webcon.Open()
objComm2.ExecuteNonQuery()
webcon.Close()
Dim objComm3 As MySqlCommand = New MySqlCommand()
objComm3.Connection = webcon
objComm3.CommandText = "SET CHARACTER SET utf8"
webcon.Open()
objComm3.ExecuteNonQuery()
webcon.Close()
For i = 0 To Val(stutable.Rows.Count) - 1
Dim objCommandp As MySqlCommand = New MySqlCommand()
objCommandp.Connection = webcon
objCommandp.CommandText = "INSERT INTO stuinfo(idstu,namestu,idnum,sexstu) VALUES(@idstu,@namestu,@idnum,@sexstu)"
objCommandp.Parameters.AddWithValue("@idstu", stutable.Rows(i).Item("id"))
objCommandp.Parameters.AddWithValue("@namestu", stutable.Rows(i).Item("name") + "-" + stutable.Rows(i).Item("family"))
objCommandp.Parameters.AddWithValue("@idnum", stutable.Rows(i).Item("idnum"))
objCommandp.Parameters.AddWithValue("@sexstu", stutable.Rows(i).Item("sex"))
webcon.Open()
objCommandp.ExecuteNonQuery()
webcon.Close()
Next i
MessageBox.Show("success insert to web ")
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.