none
VB 2005 使用SQL資料庫的問題 RRS feed

  • 問題

  • 我開發了一個專案是用VB2005寫的使用的資料庫是在遠端架個SQL SERVER
    現在有個問題:
    因為有個資料表其中有一個欄位需要寫入越南文(ăâừổỡ)
    在SQL的欄位中我已定義該欄位的型態為[ncher]
    我嘗試過在SQL SERVER 中直接在該欄位打越南文可以正常儲存
    在開發專案中也可以正常的顯示到用戶端
    但如果我在應用程式輸入越南文,存到SQL SERVER的卻有?像這樣(a?a?u??o??o?) 號
    請各位先進幫忙解決這樣的問題我實在找不出哪個還節有問題..
    2008年8月11日 下午 12:31

解答

  • 你可以在 INSERT 中使用 N'value' 的方式來強制轉換字串資料為 Unicode 編碼。

     

    Code Snippet

    INSERT INTO myTable VALUES (1, N'ăâừổỡ')

     

     

     

    2008年8月11日 下午 01:18
    版主

所有回覆

  • 你可以在 INSERT 中使用 N'value' 的方式來強制轉換字串資料為 Unicode 編碼。

     

    Code Snippet

    INSERT INTO myTable VALUES (1, N'ăâừổỡ')

     

     

     

    2008年8月11日 下午 01:18
    版主
  • 大大我的INSERT INTO與法是TableAdapter設定時自動產生的如下:

    INSERT INTO FANYI
                              (ID_KEY, NAME_KEY, GUO_KEY, GUO_NAME, N_FANYI)
    VALUES         (@ID_KEY,@NAME_KEY,@GUO_KEY,@GUO_NAME,@N_FANYI)

    我嚐試過改成

    1- INSERT INTO FANYI
                              (ID_KEY, NAME_KEY, GUO_KEY, GUO_NAME, N_FANYI)
    VALUES         (@ID_KEY,@NAME_KEY,@GUO_KEY,@GUO_NAME,N@N_FANYI)....語法找不到N@N_FANYI欄位

     

    2-INSERT INTO FANYI
                              (ID_KEY, NAME_KEY, GUO_KEY, GUO_NAME, N_FANYI)
    VALUES         (@ID_KEY,@NAME_KEY,@GUO_KEY,@GUO_NAME,N'@N_FANYI')......N_FANYI的欄位寫入的資料是"@N_FANYI" 

     

    3-INSERT INTO FANYI
                              (ID_KEY, NAME_KEY, GUO_KEY, GUO_NAME, N_FANYI)
    VALUES         (@ID_KEY,@NAME_KEY,@GUO_KEY,@GUO_NAME,N(@N_FANYI)).....可以寫入但同樣資料會有?(沒有轉碼)

     

    4-我甚麼都不改但在輸入資料的時候輸入>>N'ăn ngú'>>卻直接把這行包括N寫寫進去而且也沒有轉換寫入的資料變成"N'?n ng?'"

    請大大直點我因該改哪裡的參數?

    2008年8月12日 上午 01:09
  • ....

     

    如果你是自己寫 SQL 呢?

    另外,參數寫入時的型別是否為 nchar (SqlType.NChar) ?

    2008年8月12日 上午 02:05
    版主
  • 非常感謝大大的的提醒~~

    真正原因是因為先前該資料庫欄位的型態為CHAR後來我改為NCHAR

    但後來改完型態在設定DataSet的時候沒有讓它在自己截取SQL的型態

    只不過我覺得一點很奇怪...後來我再重設DataSet,我檢查過它設定的型態都沒有改,不知道它改了甚麼地方

    不過問題總算解決了@@"

     

    2008年8月12日 上午 02:42
  • Refresh TableAdapter when data table schema modified:

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=428338&SiteID=1

    2008年8月12日 上午 02:46
    版主
  • 嘿嘿~~在下土包子一個,看不懂英文@@"不曉得裡面說的是甚麼?

    不過還是感謝大大提供這一頁,也許其他人可以用的到

     

     

    2008年8月12日 上午 03:13