【问题标题】:Reading the connection string from an external file从外部文件读取连接字符串
【发布时间】:2015-07-30 22:50:56
【问题描述】:

我对 C# 和 SQL 都很陌生。我试图在程序加载时从外部 .text 文件中读取连接字符串,然后在代码中需要它时将其用作变量,但是我遇到了一个我以前从未见过的错误。可能出了什么问题?

连接字符串是这样的:

@"Data Source=.\wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd";

我用来将其转换为字符串的代码是这样的:

    private void Form1_Load_1(object sender, EventArgs e)
    {

        string connectionString;
        var path = @"C:\Users\Administrator\Desktop\connstring.txt";
        using (StreamReader sr = new StreamReader(path))
        {
            connectionString = sr.ReadLine();
        }

        var connection = new SqlConnection(connectionString);


        SqlConnection conn = connection;

但是,正如我提到的,我遇到了这个错误:

System.Data.dll 中出现“System.ArgumentException”类型的未处理异常

附加信息:不支持关键字:'@"data source'。

【问题讨论】:

  • 文本文件不需要@、引号或结尾;
  • 顺便说一句,您可以使用File.ReadAllText(path) 进行阅读,如果它是您文件中的唯一行。对我来说,看起来更清晰。 (File.ReadAllLines,如果不是唯一的)

标签: c# sql


【解决方案1】:

从文本文件中取出@ 符号和双引号。这些都不需要。

您的文本文件应为:

Data Source=.\wintouch;Initial Catalog=bbl;User ID=sa;Password=Pa$$w0rd;

重要提示

您不应该将您的用户凭据(尤其是 sa!!)作为纯文本存储在文件中。

【讨论】:

  • @RonBeyer 我确实指定了双引号。至于结尾的分号,那不会造成问题。事实上,我始终将分号保留在连接字符串的末尾,以防止将来在附加连接字符串时出现问题。
  • 我对 ; 的评论指向引号之外的那个,就好像他只是将代码复制/粘贴到文本文件中一样,我认为您编辑了您的问题以包含引号,就像我发表评论一样...
  • @Ron,我尝试使用分号和不使用分号,它在两种情况下都有效。也谢谢你的回答先生。
  • @RonBeyer 不,省略双引号是我原来的答案,看看编辑历史。无论哪种方式,都无关紧要。
  • 哦,我忘了说,这只是一个学术练习,如上所述,我正在学习 SQL 和 C#,这只是我正在做的训练语言的事情。跨度>
猜你喜欢
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-16
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多