数据库连接字符串和排序规则

时间:2010-01-25 13:25:57

标签: mysql asp.net-mvc-2 connection-string collation dotconnect

是否可以在MySql连接字符串中设置连接排序规则以及如何在服务器上设置用于新连接的默认设置。

无法做的两件事

  1. 打开连接后无法调用SET COLLATION_CONNECTION,因为我正在使用实体框架来完成对我的所有调用 并不完全正确,因为您可能会看到编辑
  2. 由于其他数据库及其使用它们的受尊重应用程序,无法更改服务器默认连接排序规则。
  3. 我想要指定的是我的web.config文件中的某个连接字符串参数,如:

    "User id=dbuser;Password=dbpass;Host=dbserver;Database=testung;Collation=utf8_general_ci"
    

    但无法识别Collation设置/变量。

    使用的技术

    • Asp.net MVC 2
    • IIS 7
    • 实体框架1
    • DevArt dotConnect MySql连接器
    • MySql 5.1

    编辑1

    我已尝试过此代码,因为@Devart建议但无效

    partial void OnContextCreated()
    {
        System.Data.Common.DbCommand command = this.Connection.CreateCommand();
        command.CommandText = "set collation_connection = utf8_slovenian_ci;";
        command.CommandType = System.Data.CommandType.Text;
        this.Connection.Open();
        command.ExecuteNonQuery();
        // this.Connection.Close();
    }
    

2 个答案:

答案 0 :(得分:1)

我们建议您实现OnContextCreated部分方法。
您可以访问其中的商店连接,并且可以使用此连接执行ADO.NET命令“SET COLLATION = ...”。

答案 1 :(得分:0)

如果有其他人偶然发现此问题或想要在打开连接时发出命令:OnContextCreated的答案不再有效,因为该方法不再存在/不再受支持。

我用于执行java.io.FileNotFoundException: /project_root/.build/package/modules/exploded/my.war/WEB-INF/lib/xxx.jar (No such file or directory)` How sweet of it. 的替代方法是将SET NAMES <character set used by the database>附加到您的连接字符串。根据Devart的文档,这也适用于PostgreSQLMSSQLOracle

当访问数据库连接的属性并单击;initialization command=\"SET NAMES '" + CharSet + "';\"按钮时,也可以在EntityDeveloper中设置此属性。