- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我创建了一个简单的应用程序来帮助翻译我用 C# 编写的网站和应用程序。但是我不知道如何将特殊字符插入 SQL Server,我之前使用 MySql 和 PHP。现在,当我在 C# 中使用此命令将特殊字符插入数据库时,我只看到 ????????
字符:
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.Connection = connection;
sqlCmd.CommandType = CommandType.Text;
sqlCmd.CommandText = "INSERT INTO dbo.Translations(TranslationKey,TranslationValue,FromLanguageKey,ToLanguageKey) VALUES (@TranslationKey, @TranslationValue, @FromLanguageKey, @ToLanguageKey)";
sqlCmd.Parameters.AddWithValue("@TranslationKey", item.TranslationKey);
sqlCmd.Parameters.AddWithValue("@TranslationValue", item.TranslationValue);
sqlCmd.Parameters.AddWithValue("@FromLanguageKey", item.FromLanguageKey);
sqlCmd.Parameters.AddWithValue("@ToLanguageKey", item.ToLanguageKey);
try
{
connection.Open();
sqlCmd.ExecuteNonQuery();
connection.Close();
}
catch (Exception ex)
{
connection.Close();
}
}
一些教程写了 use N 语句,但我如何将它与 Parameters.AddWithValue
一起使用?
最佳答案
首先,最重要的一点。这:
catch (Exception ex)
{
connection.Close();
}
非常非常邪恶。您丢弃了关于可能发生的任何错误的所有信息。 如果您发现错误,记录和/或显示它们。不要扔掉它们。这样的代码将使调试成为一场噩梦。你可能想写的是:
try
{
connection.Open();
sqlCmd.ExecuteNonQuery();
}
finally
{
connection.Close();
}
更好:使用 using
关键字。
现在谈谈小问题,本地化。您的代码是正确的(除了上面提到的一点),您的数据类型可能不正确。
由于您没有提供 [mcve],因此只能猜测,但最可能的原因是您在应该使用的时候使用了 varchar
或 text
列nvarchar
或 nvarchar(MAX)
。
关于c# - 如何使用 SqlCommand c# 将西里尔字符和其他特殊字符插入 SQL Server?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38681747/
我在数据库中有一个具有俄罗斯值(value)观的项目。我需要做的就是附和他们,但事实证明这比预期的要困难。所有俄语字符都只是作为问号打印。 IE: ??? ? ????????对于我尝试过的每种编码,
这是我解析 JSON 的函数: func jsonParsingWeather(urlPath:String) -> NSDictionary { var utf8URLPath = urlP
我是一名优秀的程序员,十分优秀!