 |
|
เจอปัญหาตอนแปลง HTML Character Code กลับไปเป็น Double Quote ครับ |
|
 |
|
|
 |
 |
|
จะแปลงวัตถุประสงค์เพื่ออะไรครับ 
|
 |
 |
 |
 |
Date :
2012-07-09 22:45:32 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
พอดีใช้ ฐานข้อมูลเป็น MySQL
แล้วเจอปัญหาตอน Insert Data ที่เป็น Text ครับ
ใน Text มีพวก Single Quote กับ Double Quote มันเลยจะชนกับ Quote ของ Syntax SQL เลยเจอปัญหาครับ
ที่น่าแปลกใจคือ ตอนนี้เจอปัญหา Double Quote ครับ
ใน SQL Command ผมใช้ Single Quote คลุม Value ที่ต้องการ Insert
INSERT INTO table (detail) VALUES('xxxxxxxxxxx')
ประมาณนี้ครับ
แต่ใน Value ที่ต้องการ Insert ดันมี Double Quote ซึ่งปกติแล้ว มันไม่น่าจะ Error ได้ เพราะ Double Quote ใน Value ไม่ชนกับ Single Quote ของ Syntax SQL
แต่มันกลับ ไม่สามารถ Insert ได้ เป็นเพราะว่า Double Quote นั้น เป็น การ Copy มาจากใน Microsoft Word ครับ
ลักษระของมันคือ Quote มันจะมีลักษณะ เอียงๆเฉียงๆ
ตามรหัส Code ตามนี้ครับ
http://www.gtwiki.org/mwiki/index.php?title=VB_Chr_Values
Character 145 (Chr(145): ‘
Character 146 (Chr(146): ’
Character 147 (Chr(147): “
Character 148 (Chr(148): ”
ผมเลยลองแก้ไข Quote ใหม่ ให้เป็นปกติ แบบนี้ "
ปรากฎว่า Insert ผ่านครับ 
ตัวอย่าง SQL Command ที่ Insert ไม่ผ่าน เพราะเป็น Quote ที่ Copy มาจาก Microsoft Word
INSERT INTO table (detail ) VALUES ('โครงการสัมนาเรื่อง “xxxxxxxxx” ')
ตัวอย่าง SQL Command ที่แก้ไข Quote ใหม่แล้ว และ Insert สำเร็จ
INSERT INTO table (detail ) VALUES ('โครงการสัมนาเรื่อง "xxxxxxxxx" ')
สังเกตที่ Quote ที่คลุม xxxxxxxx แบบแรกมันจะเอียงๆ แบบที่สอง มันจะตรงๆ
ผมเลยคิดว่า ก่อน Insert จะ Replace พวก Quote ทั้งหลายให้เป็น HTML Character Code ก่อน จะได้ไม่มีปัญหา ตอน Insert
แต่ปรากฎว่า ตอน Replace กลับเพื่อนำมา แสดงผล มีปัญหาครับ 
|
 |
 |
 |
 |
Date :
2012-07-10 10:43:03 |
By :
Likito |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เด็กน้อยเอ้ย ใช้ parameters ดิ
|
 |
 |
 |
 |
Date :
2012-07-10 12:15:52 |
By :
อิอิ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใช่แล้วครับใช้ Parameter Query ครับ
Code (VB.NET)
Dim objConn As New SqlConnection
Dim strConnString, strSQL As String
strConnString = "Server=localhost;UID=sa;PASSWORD=;database=mydatabase;Max Pool Size=400;Connect Timeout=600;"
strSQL = "INSERT INTO files (Name,FilesName,FilesType) " & _
" VALUES " & _
" (@sName,@sFilesName,@sFilesType)"
objConn.ConnectionString = strConnString
objConn.Open()
Dim objCmd As New SqlCommand(strSQL, objConn)
objCmd.Parameters.Add("@sName", SqlDbType.VarChar).Value = Me.txtName.Text
objCmd.Parameters.Add("@sFilesName", SqlDbType.Binary).Value = imbByte
objCmd.Parameters.Add("@sFilesType", SqlDbType.VarChar).Value = strMIME
objCmd.ExecuteNonQuery()
objConn.Close()
objConn = Nothing
Go to : ASP.NET System.Data.SqlClient - Parameter Query (SqlParameter)
Go to : ASP.NET SQL Server BLOB Binary Data and Parameterized Query
|
 |
 |
 |
 |
Date :
2012-07-10 21:30:12 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|