如何在C#中调用存储在App.Config文件中的拆分值

How to call the Value of split stored in App.Config File in C#

我已经在 App.Config 中存储了用于拆分文本文件的值 file.I 在使用 KEY 名称传递用于拆分的值时出现问题,我正在读取带有逗号 " 的文本文件, " 分隔符并将其存储在数据库中 index.Help 我调用应用程序密钥进行拆分。

 con.Open();
                using (StreamReader file = new StreamReader(@"E:\StudentFileDB\StuNameFile.txt"))
                {
                    while ((line = file.ReadLine()) != null)
                    {
                      string fields = line.Split(ConfigurationManager.AppSettings["splitcode"].ToString());


                        cmd = new SqlCommand(StudentInsertQuery, con);
                        cmd.Parameters.AddWithValue("@StudentId", fields[0].ToString());
                        cmd.Parameters.AddWithValue("@StudentName", fields[1].ToString());
                        cmd.Parameters.AddWithValue("@Age", fields[2].ToString());
                        cmd.Parameters.AddWithValue("@City", fields[3].ToString());
                        cmd.Parameters.AddWithValue("@Country", fields[4].ToString());
                        cmd.Parameters.AddWithValue("@password", fields[5].ToString());
                        cmd.ExecuteNonQuery();
                    }

///App.Config File
    <add key="splitcode" value="," />

错误说明无法将字符串传递给Error,我想知道在line.split中传递键值,当我直接使用string[] field=line.split("," );

//编译时错误

字符串字段 = line.Split(ConfigurationManager.AppSettings["splitcode"].ToString());

您的问题来自于您向 Split 方法提供了一个需要字符的字符串。

在这种情况下:

// Not compiling
line.Split(",");

// Compiling
line.Split(',');

您可以使用字符串的第一个字符来代替字符串:

// TODO : safety checks
string fields = line.Split(ConfigurationManager.AppSettings["splitcode"].ToString()[0]);

您也可以将值转换为一个字符,但您需要确保只有一个字符。

// TODO : safety checks
string fields = line.Split((char)ConfigurationManager.AppSettings["splitcode"].ToString());

试着解决你的问题,看看你到底在哪里遇到错误。

// Change This 
string fields = line.Split(ConfigurationManager.AppSettings["splitcode"].ToString());
//To This

string s = ConfigurationManager.AppSettings["splitcode"].ToString();
char sperator = Convert.ToChar(s);
string[] fields = line.Split(sperator);

现在有一种更好的方法也可以将所有这些代码写在一行中,但是您需要了解问题出在哪里

您没有使用字符串数组来存储字符串。 您没有使用 char 进行拆分,而是传递了一个字符串进行拆分。