PDA

View Full Version : چرا ؟؟؟؟؟؟ نشان داده می شود؟



Asad.Safari
دوشنبه 15 تیر 1383, 11:43 صبح
من اطلاعاتم تو دیتابیس به صورت فارسی است
اونا رو تو صفحه asp.net فراخوانی میکنم
بعد از اجرا روی local همه چی درسته!!!و صفحه کار میکنه!!!!
اما وقتی به سرور آپلود میکنم نوشته ها به صورت علامت ؟؟؟؟
سوال در می یاد!!!

راه چاره!!!

rsalimian
دوشنبه 15 تیر 1383, 16:42 عصر
باید داده ها بصورت یونیکد ذحیره شوند:
1- نوع فیلد را از نوع nchar,nvarchar,ntext تعریف کنید
2- در کوری درج رکورد حتما از N استفاده کنید:

insert into myTable (field1,field2) values(N'value of f1',N'value of field2')

Asad.Safari
سه شنبه 16 تیر 1383, 10:35 صبح
در این جا من چی رو تغییر بدم:


Dim strSQL As String
Dim cmdInsert As OleDbCommand
Dim daOrders, daDetails As OleDbDataAdapter

daOrders = New OleDbDataAdapter("", cn)
strSQL = "INSERT INTO Orders (CustomerID, OrderDate) VALUES (?, ?); SELECT SCOPE_IDENTITY() AS OrderID"
cmdInsert = New OleDbCommand(strSQL, cn)
cmdInsert.Parameters.Add(New OleDbParameter("@CustomerID", OleDbType.WChar, 50, ParameterDirection.Input, False, 0, 0, "CustomerID", DataRowVersion.Current, Nothing))
cmdInsert.Parameters.Add(New OleDbParameter("@OrderDate", OleDbType.DBTimeStamp, 0, ParameterDirection.Input, False, 0, 0, "OrderDate", DataRowVersion.Current, Nothing))
cmdInsert.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord
daOrders.InsertCommand = cmdInsert

daDetails = New OleDbDataAdapter("", cn)
strSQL = "INSERT INTO [Order Details] (OrderID, ProductID, Quantity, UnitPrice) VALUES (?, ?, ?, ?)"
cmdInsert = New OleDbCommand(strSQL, cn)
cmdInsert.Parameters.Add(New OleDbParameter("@OrderID", OleDbType.Integer, 0, ParameterDirection.Input, False, 0, 0, "OrderID", DataRowVersion.Current, Nothing))
cmdInsert.Parameters.Add(New OleDbParameter("@ProductID", OleDbType.Integer, 0, ParameterDirection.Input, False, 0, 0, "ProductID", DataRowVersion.Current, Nothing))
cmdInsert.Parameters.Add(New OleDbParameter("@Quantity", OleDbType.Integer, 0, ParameterDirection.Input, False, 0, 0, "Quantity", DataRowVersion.Current, Nothing))
cmdInsert.Parameters.Add(New OleDbParameter("@UnitPrice", OleDbType.Currency, 0, ParameterDirection.Input, False, 0, 0, "UnitPrice", DataRowVersion.Current, Nothing))
cmdInsert.UpdatedRowSource = UpdateRowSource.None
daDetails.InsertCommand = cmdInsert

rsalimian
سه شنبه 16 تیر 1383, 18:02 عصر
فیلدهای از نوع رشته را باید ntext, nchar, nvarchar تعریفف کنی :

string strName="نام کاربر";
string strFamily="نام خانوادگی کاربر";

strSQL = "INSERT INTO tblUser(name,family,grade) VALUES (" +
" N' " + strName + " ' , ' N" + strFamily + " ' ,20)"

Asad.Safari
سه شنبه 16 تیر 1383, 19:19 عصر
لطفا اون کدی که من بالا دادم اونو تغییر بده؟
و آیا راه آسانتری وجود ندارد؟
:flower:

M-Gheibi
سه شنبه 16 تیر 1383, 21:01 عصر
خب دوست عزیز حداقل اینجا رو یه نگاهی میکردید:
رفع مشکل فارسی نویسی در ASP و ASP.NET (http://www.barnamenevis.org/forum/viewtopic.php?t=2640)