佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1708|回复: 6

How to insert chinese characters into a table in SQL server

[复制链接]
发表于 28-3-2006 12:14 PM | 显示全部楼层 |阅读模式
i hv a question regarding sql, hope anyone of u can help..
does anyone knows how to insert chinese characters into a table in sql server?
i hv try this:
declare @text as nvarchar(999)
set @text=N'谢谢'
insert into tableChinese(chinese) values (@text)

It works.. but when i want to pass chinese characters from an application, i dont know how to add the 'N' together with the @text at the values part ..something like this:
insert into tableChinese(chinese) values (N @text)

"values (N @text)" is not correct..

thanks
回复

使用道具 举报


ADVERTISEMENT

发表于 28-3-2006 12:18 PM | 显示全部楼层
你是在用 stored procedured 吗?
如果不是的话, 你其实不用 declare 啊.
如果在 c#, 你可以直接这样写:

sql = "insert into tableChinese(chinese) values (N" + chinese_text + ")"
回复

使用道具 举报

 楼主| 发表于 28-3-2006 12:26 PM | 显示全部楼层
yes, im using stored procedure.. and VB.net
something like this:

CREATE PROCEDURE dbo.ChineseCharIns
(
        @chinese as nvarchar(999)
)
as
declare @chineseCharID as bigint

SET XACT_ABORT ON
begin transaction
begin
        Insert into ChineseChar(chinese)
        values (@chinese)
        Select @chineseCharID =@@identity

commit transaction
GO

So, i hv to add "N" infront of the @chinese to make sure i can insert the chinese characters into table.. if not, symbols like "???" will be inserted..
回复

使用道具 举报

发表于 28-3-2006 01:50 PM | 显示全部楼层
原来如此, 我的做法是, 保持你以上的 Stored Procedure 的不变.
但, 我在 VB.NET/C# 里执行这 stored procedures 时, 我会这样呼叫:

sql = "ChineseCharIns N'" & chinese_characters & "'"

p/s: stored procedure 里不需要加 "N".
回复

使用道具 举报

 楼主| 发表于 28-3-2006 02:00 PM | 显示全部楼层
如果我执行 stored procedure 的方法如下又怎样把那个"N"加入呢?

        Dim cnn As New SqlConnection(Application("sqlCnn"))
        Dim dcd As New SqlCommand
        Dim prm As SqlParameter

        Try
            'init
            dcd.Connection = cnn
            dcd.CommandText = "ChineseCharIns"
            dcd.CommandType = CommandType.StoredProcedure

            'declare parameter
            prm = New SqlParameter("@chinese", SqlDbType.NVarChar, 999)
            dcd.Parameters.Add(prm)

            'assign parameter value
            dcd.Parameters("@chinese").Value = txtChineseChar.Text

            'open connection and execution
            cnn.Open()
            dcd.ExecuteNonQuery()

            'close connection
            cnn.Close()
            cnn = Nothing

       Catch except As SqlException
            Throw except
        Catch ex As Exception
            Throw ex
        Finally
            cnn = Nothing
        End Try
回复

使用道具 举报

 楼主| 发表于 28-3-2006 02:11 PM | 显示全部楼层
i think i hv got the correct answer..thanks anyway
回复

使用道具 举报

Follow Us
 楼主| 发表于 28-3-2006 02:14 PM | 显示全部楼层
actually with this.. no need to add "N" before the variable..
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 14-11-2024 04:49 PM , Processed in 0.235304 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表