在Visual Studio中打开ODBC数据库连接时出错

时间:2016-07-27 16:44:17

标签: c# asp.net-mvc visual-studio odbc intersystems-cache

我希望简短而清晰。我在使用Crystal Reports时连接到ODBC没有任何问题,并且之前在VS中使用了以下设置来创建应用程序并且它运行良好。但是,现在我在调用con.Open()时收到以下异常。 我想知道我是如何解决这个问题的。谢谢!

  

{“ERROR [S1000] [缓存ODBC] [状态:S1000] [本机代码   417] \ r \ n [C:\ Program Files(x86)\ IIS   Express \ iisexpress.exe] \ r \ n访问被拒绝\ r \ nERROR [01000]   [Microsoft] [ODBC驱动程序管理器]驱动程序不支持   应用程序请求的ODBC行为的版本(请参阅   SQLSetEnvAttr)。“}

我的连接字符串和方法如下所示:

<connectionStrings>
<remove name="AvatarDBPM"/>
<remove name="AvatarDBCWS"/>
<add name="AvatarDBPM" connectionString="DRIVER={InterSystems ODBC};SERVER=0.0.0.0;PORT=4972;DATABASE=AVPM4972127001;UID=SYSTEMCODE:UN;PWD=MyPsswd;"/>

public DataAccess(string from_date, string to_date)
        {
            this.from_date = from_date;
            this.to_date = to_date;
            LOSList = new List<LOS_View_Definition>();
            this.PMConnectionString = ConfigurationManager.ConnectionStrings["AvatarDBPM"].ConnectionString;
        }

        public List<LOS_View_Definition> GetLOSList()
        {
            #region Command
            var command = "my query here";
            #endregion

            #region get value from DB
            try
            {
                using (OdbcConnection con = new OdbcConnection(PMConnectionString))
                {
                    con.Open();

2 个答案:

答案 0 :(得分:1)

尝试其他驱动程序。 Cache中安装了4个ODBC驱动程序:

ODBC版本:2.5,3.5

比特度:32,64

另外,你确定,PORT不是1972年吗? 此外,您可以提供AUTHENTICATION METHOD=0参数。

答案 1 :(得分:0)

我认为您应该使用符合所请求的ODBC规范的ODBC驱动程序版本。如果您使用的是64位系统,则还应该使用64位ODBC驱动程序。如果安装的驱动程序版本与您用于编译的系统不匹配,则会发生此错误。