Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SQL数据库没有';我不能识别非英语字符_C#_.net - Fatal编程技术网

C# SQL数据库没有';我不能识别非英语字符

C# SQL数据库没有';我不能识别非英语字符,c#,.net,C#,.net,我正在尝试创建一个使用数据库的应用程序,但我需要它将数据保存为Unicode。。。 我将类型更改为nchar或ntext,但它仍然将我的字符保存为问号 有解决办法吗? 感谢您的帮助您必须告诉数据库您正在发送unicode字符串 使用参数化查询(出于安全考虑,您应该使用参数化查询): 使用直接查询(为了一切顺利,请使用参数化查询): 另外,在数据库中使用nvarchar可能比nchar更好,因为我相信nchar会将字符串填充到字段长度。是否使用参数化查询?我想问题不在数据库中,而在程序中。如果没有

我正在尝试创建一个使用数据库的应用程序,但我需要它将数据保存为Unicode。。。 我将类型更改为nchar或ntext,但它仍然将我的字符保存为问号 有解决办法吗?
感谢您的帮助

您必须告诉数据库您正在发送unicode字符串

使用参数化查询(出于安全考虑,您应该使用参数化查询):

使用直接查询(为了一切顺利,请使用参数化查询):


另外,在数据库中使用nvarchar可能比nchar更好,因为我相信nchar会将字符串填充到字段长度。

是否使用参数化查询?我想问题不在数据库中,而在程序中。如果没有任何代码就有点难说。你使用的是哪个数据库?如果你使用ASCII字段,不管数据库是什么,你都会得到奇怪的字符。如果将ASCII字符串发送到数据库,则会得到奇怪的字符。您使用的是什么数据库,字段是Unicode吗?你的问题是什么?您是使用参数还是使用字符串连接构造查询?您的源数据首先是Unicode吗?如果您的数据库是SQL Server,请不要使用
ntext
。它已被弃用。使用
nvarchar(max)
,如果字段为
varchar
@PanagiotisKanavos“我将类型更改为nchar或ntext”则没有帮助。op没有这样说?op没有提供任何信息。我们不得不猜测。SQL Server不是唯一一个使用NCHAR的数据库,尽管它可能是唯一一个不使用
NTEXT
的数据库,因为它是deprecated@PanagiotisKanavosOP提供了这些信息,a)表明这是SQL Server。b) 他试着用字段nchar和ntext插入数据,这意味着问题显然是客户端的,他已经在处理数据库端的东西了。c) 由此得出的逻辑结论是,他没有告诉SQL他发送的数据是unicode格式的我意识到这是一个假设,但这不是一个坏的假设。如果这是错误的,并且他使用了一些奇怪的数据库引擎,那么我会很高兴地更新/删除我的答案。
SqlCommand cmd;
cmd.Parameters.Add("@mycolumn", SqlDbType.NVarChar, 255).Value = "hello";
string query = "INSERT INTO mytable (mycolumn) VALUES (N'hello');";