-1

我试图用我的 SQL 数据库的信息创建一个设置文件,但我目前遇到的问题是我似乎无法读取每一行并将其保存到不同的变量中。

 private void readFile()
    { 
        {
            using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\Settings.txt", true))

            while (sr.Peek() >= 0)
            {
                CurrentLine = sr.ReadLine();

            }
        }
    }

我不确定如何设置它,以便我可以将每个不同的行写入我的 4 个变量。

任何帮助,将不胜感激!

4

2 回答 2

1

当我需要将设置存储在文件中时,我创建了一个类来保存信息,例如

public class Settings{
   public string ConnectionString {get;set;}
   public string DatabaseName {get;set;}
   public DateTime Started {get;set;}
}

保存设置:

var settings = new Settings(){
   ConnectionString = "blah blah blah",
   DatabaseName = "blah blah blah",
   Started = DateTime.Now,
};
var json = JsonConvert.SerializeObject(settings);
File.WriteAllText(@"C:/Settings.txt", json);

加载设置:

var json = File.ReadAllText(@"C:/Settings.txt");
var settings = JsonConvert.DeserializeObject(json);

我发现这可靠、灵活且稳定。这也意味着您不必担心(例如)DateTime 和 String 之间的转换。您也不必担心设置值的顺序。

(这使用 Json.NET 包。)

于 2015-03-27T16:12:35.390 回答
1

我会改用一个数组,您可以通过索引访问它:

string[] lines = File.ReadAllLines(@"C:\Users\Settings.txt");
string firstLine = lines[0];
// and so on, keep in mind that it could have less lines

使用四个变量的StreamReader方法要麻烦得多:

using (System.IO.StreamReader sr = new System.IO.StreamReader(@"C:\Users\Settings.txt", true))
{ 
    string line;
    int currentLineNumber = 0;
    while ((line = sr.ReadLine()) != null)
    {
        switch (++currentLineNumber)
        {
            case 1: first = line; break;
            case 2: second = line; break;
            case 3: third = line; break;
            case 4: fourth = line; break;
        }
    }
}
于 2015-03-27T15:20:04.783 回答