PDA

View Full Version : مشکل در ذخیره فارسی در دیتا بیس



tc1000
پنج شنبه 28 آذر 1387, 12:17 عصر
با سلام
من در تاکس باکس فارسی میویسم توی دیتا بیس درست ذخیره میشه ولی وقتی به این شکل مینویسم

label5.text="ذخیره در دیتا بیس"
این کلمه ذخیره در دیتا بیس به صورت نا مشخص ذخیره میشه دلیلش چی هستش

mahdi_farhani
پنج شنبه 28 آذر 1387, 12:25 عصر
فیلدی که در دیتابیس گرفتی حتماً از نوع unicode باشه
مثلاً nchar , nvarchar,ntext

tc1000
پنج شنبه 28 آذر 1387, 12:57 عصر
فیلدی که در دیتابیس گرفتی حتماً از نوع unicode باشه
مثلاً nchar , nvarchar,ntext

با سلا خدمت مهندس
بله
nchar هستش
ولی فارسی نمیاد

mahdi_farhani
پنج شنبه 28 آذر 1387, 13:11 عصر
میشه sp یا کوئری که برای ذخیره داری و همچنین جدولت را بزاری ؟

tc1000
پنج شنبه 28 آذر 1387, 13:23 عصر
Dim myConnection6 As New SqlConnection(strcon)

Dim myCommand6 As New SqlCommand( _
"UPDATE tbl_bank SET orderid="',bank='" + Request.Cookie("bank").Value + "' where username='" + usr.text + "'", myConnection6)
myCommand6.Connection.Open()
myCommand6.ExecuteNonQuery()
myCommand6.Connection.Close()
توی اینجا با کوکی هستش
و همچینین بجای کوکی رشته میزارم بازم همینطوری هستش
ولی اگه تاکس باکس رو بطزارم درست ذخیره میشه

mahdi_farhani
پنج شنبه 28 آذر 1387, 13:30 عصر
اینو جایگزین کن ببین چی میشه

bank=N' ........

iman_ad
پنج شنبه 28 آذر 1387, 15:37 عصر
Request.Cookie("bank").Value چک کردی قبل اینکه به بانک منتقل بشه مقدارش چی هست، از Trace استفاده کن یا مقدارش چاپ کن ببین درسته شاید مشکل از کوکیت باشه چرا از session به جای کوکی استفاده نمی کنی؟

milade
پنج شنبه 28 آذر 1387, 16:24 عصر
Request.Cookie("bank").Value چک کردی قبل اینکه به بانک منتقل بشه مقدارش چی هست، از Trace استفاده کن یا مقدارش چاپ کن ببین درسته شاید مشکل از کوکیت باشه چرا از session به جای کوکی استفاده نمی کنی؟
فکر نکنم از این باشه چون گفتن:
همچینین بجای کوکی رشته میزارم بازم همینطوری هستش
حالا ببینیم با کد استاد فرهانی چی میشه

tc1000
پنج شنبه 28 آذر 1387, 17:25 عصر
اینو جایگزین کن ببین چی میشه

bank=N' ........

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

tc1000
پنج شنبه 28 آذر 1387, 17:26 عصر
Request.Cookie("bank").Value چک کردی قبل اینکه به بانک منتقل بشه مقدارش چی هست، از Trace استفاده کن یا مقدارش چاپ کن ببین درسته شاید مشکل از کوکیت باشه چرا از session به جای کوکی استفاده نمی کنی؟

تویwatch هم چیز درست هستش و فقط توی دیتا بیس خرابه
مهندس با session درست میشه این مسئله؟

mahdi_farhani
پنج شنبه 28 آذر 1387, 17:27 عصر
مشکل از زبان خوده SQL هست ، با همون N فکر کنم مشکلت حل بشه

tc1000
پنج شنبه 28 آذر 1387, 17:41 عصر
با تشکر
آقا ما پوستمون کنده شد نه توی این برنامه بلکه توی دهها برنامه دیگه بقول شما زبان sql مشکل داره چون خارجی ها که نمییاد ست کنند روی اون چیزی که ما میخوایم
دنبال این جمله بودم
سرکار زحمت کشیدی احتمال زیاد درست میشه
حالا مهندس کار این N چی هست؟

iman_ad
پنج شنبه 28 آذر 1387, 18:35 عصر
نه فقط یک پیشنهاد ذادم ربطی نداره کاری که آقای فراهانی گفتن انجام بده درست می شه

mahdi_farhani
پنج شنبه 28 آذر 1387, 18:39 عصر
N همون unicode هست

Himalaya
شنبه 30 آذر 1387, 14:13 عصر
این مطالبو تو یه مقاله خوندم...خودم امتحان نکردم


<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR"
uiCulture="fa-IR"></globalization>

خط فوق باعث مي شود بتوانيم از حروف فارسي در سايتمان و ديتابيس استفاده كنيم


<appSettings>
<add key="ConnectionString"
value="data source=pirahansiah.com; user id=pirahansiah; password=******" />
</appSettings>

افزودن كد به صفحات براي استفاده فارسي :
حال وارد هركدام از صفحات سايتمان شده و كدهاي زير را وارد مي كنيم:


<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/ma.master"
CodeFile="Default.aspx.cs" Inherits="_Default" ResponseEncoding="utf-8" %>

خيلي ها بخاطر اضافه نكردن كد فوق اطلاعاتي كه در ديتابيسشان وارد مي شود به صورت علامت سوال در مي آيد و نمي دونن مشكل از كجا مي باشد موقع سیو كردن صفحات نيز بايد صفحات را به فرمتutf-8
ذخيره كنيد تا كلمات فارسي درست نشان داده بشوند

tc1000
یک شنبه 01 دی 1387, 09:27 صبح
مشکل از زبان خوده SQL هست ، با همون N فکر کنم مشکلت حل بشه

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

tc1000
یک شنبه 01 دی 1387, 09:28 صبح
این مطالبو تو یه مقاله خوندم...خودم امتحان نکردم


<globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="fa-IR"
uiCulture="fa-IR"></globalization>

خط فوق باعث مي شود بتوانيم از حروف فارسي در سايتمان و ديتابيس استفاده كنيم


<appSettings>
<add key="ConnectionString"
value="data source=pirahansiah.com; user id=pirahansiah; password=******" />
</appSettings>

افزودن كد به صفحات براي استفاده فارسي :
حال وارد هركدام از صفحات سايتمان شده و كدهاي زير را وارد مي كنيم:


<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/ma.master"
CodeFile="Default.aspx.cs" Inherits="_Default" ResponseEncoding="utf-8" %>

خيلي ها بخاطر اضافه نكردن كد فوق اطلاعاتي كه در ديتابيسشان وارد مي شود به صورت علامت سوال در مي آيد و نمي دونن مشكل از كجا مي باشد موقع سیو كردن صفحات نيز بايد صفحات را به فرمتutf-8
ذخيره كنيد تا كلمات فارسي درست نشان داده بشوند

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

mahdi_farhani
یک شنبه 01 دی 1387, 11:50 صبح
ولی اگه تاکس باکس رو بطزارم درست ذخیره میشه
نکته اینجاست که با تکست باکس میگه درسته ، پس از زبان دیتا بیس هم نمیتونه باشه ، من به این دقت نکرده بودم . درضمن زبان دیتابیس روی هرچیزی که تنظیم شده باشه Unicode باید ذخیره کنه ......
حالا فعلاً برای اینکه مشکلت حل بشه ، کوکی رو بریز تو تکست باکس و ذخیره کن تا ببینیم مشکل از کجاست دقیقاً ، اگر میشه صفحتو بزار اینجا تا ببینیم چیه (البته با دیتابیس)

tc1000
یک شنبه 01 دی 1387, 12:52 عصر
نکته اینجاست که با تکست باکس میگه درسته ، پس از زبان دیتا بیس هم نمیتونه باشه ، من به این دقت نکرده بودم . درضمن زبان دیتابیس روی هرچیزی که تنظیم شده باشه Unicode باید ذخیره کنه ......
حالا فعلاً برای اینکه مشکلت حل بشه ، کوکی رو بریز تو تکست باکس و ذخیره کن تا ببینیم مشکل از کجاست دقیقاً ، اگر میشه صفحتو بزار اینجا تا ببینیم چیه (البته با دیتابیس)

دمت گرم دقیقا همین کار رو میکنم نتیجه رو هم بهتون میگم

iman_ad
دوشنبه 02 دی 1387, 04:35 صبح
چرا از پارامتر استفاده نمی کنی اینطوری نوع دادهای که پاس می شه مشخصه که مثلا Nvarchar