当前位置:  开发笔记 > 编程语言 > 正文

从C#app问题连接到嵌入式FireBird数据库

如何解决《从C#app问题连接到嵌入式FireBird数据库》经验,为你挑选了1个好方法。

我似乎在从示例C#应用程序连接到嵌入式FireBird数据库时遇到问题.这就是我所拥有的.

static void Main(string[] args)
    {

        //Some constant parameters used to form up the connection string... 
        #region constant literals
        const String User = "SYSDBA";
        const String Password = "masterkey";
        const String DBPath = "D:\\!tmp\\1\\cafw.fdb";
        const String DLLPath = @"fbembed.dll";
        const String Charset = "WIN1251";
        const int Dialect = 3;
        #endregion

        //I check whether we actually have a database file nearby
        //and fbembed.dll. If we don't - we leave
        if (File.Exists(DBPath) == true && File.Exists(DLLPath) == true)
        {
            //I form up a connection string out of literals I've declared above
            FbConnectionStringBuilder CStr = new FbConnectionStringBuilder();

            CStr.ServerType = FbServerType.Embedded;                
            CStr.UserID = User;
            CStr.Password = Password;                
            CStr.Dialect = Dialect;                
            CStr.Database = DBPath;
            CStr.Charset = Charset;                                
            CStr.ClientLibrary = DLLPath;

            //And then I finally try to connect
            FbConnection Conn = new FbConnection(CStr.ToString());                

            try
            {
                //See what we've got in the end
                Console.WriteLine(CStr.ToString());
                //And try to connect
                Conn.Open();
            }
            catch (Exception Ex)
            {
                //Show me what has gone wrong
                Console.WriteLine("\n" + Ex.Message.ToString());
                Console.ReadKey();
            }
            finally
            {
                Conn.Close();
            }
        }
    }

问题是,它让我产生了一个

server type = Embedded; user id = SYSDBA; password = masterkey; dialect = 3; initial catalog = D:!tmp\1\cafw.fdb; character set = WIN1251; client library = fbembed.dll

找不到错误代码335544972的消息.

ESCAPE序列无效

作为输出.

我已经google了解了大约335544972错误代码,它似乎是关于无效连接字符串的东西,但我没有找到任何关于它的"官方"信息.

任何人遇到类似的事情都可以告诉我,我做错了什么?

谢谢.

UPD:正如我所建议的那样,我试图简化我的连接字符串.所以,而不是我上面所做的

FbConnection Conn = new FbConnection("Database=D:\\tmp\\1\\cafw.fdb;ServerType=1");

它给了我一条消息"嵌入式Firebird不支持Trusted Auth".所以,我尝试使用常规的sysdba登录

FbConnection Conn = new FbConnection("Database=D:\\tmp\\1\\cafw.fdb;ServerType=1;User=SYSDBA;Password=masterkey");

并得到了相同的错误消息.



1> Kirill Leont..:

奇怪的东西.

很难相信,但我可以为此命名的唯一原因是我的c#解决方案存在于d:......\c#\ myAppProject中(是的,它都是关于#符号).

在我更换项目后,一切正常.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有