如何根据键值获取在文本文件中输入的记录

时间:2011-09-12 06:17:28

标签: c#

我正在使用c#开发Windows项目。我必须将文本文件记录导入sqlserver 2005 db。 我的问题是  我想使用student Idno从文​​本文件中读取记录。

我有一个想法,即使用找到学生号:1001值的字符串从文本文件中读取精确值。  我想阅读基于特定学生的每个学生记录吗?不适合1001

所以我希望standered代码根据学生编号读取特定记录  我的选择。 请帮我.......

我的文字文件就像这样

      |-----------------------------------------------|
      |            student no:1001                    | 
      |           address:ongole,A.P,                 | 
      |           hyderabad,india.                    | 
      | ----------------------------------------------| 
      |  stdid stdname   class                        |
      |   1     raheem   mca                          |
      |   2     sudheer  mca                          |
      | ----------------------------------------------|
      | student no:1001                               | 
      |   address:ongole,A.P,                         |
      |           hyderabad,india.                    | 
     -|--------------------------------------------   | 
      |  stdid stdname   class                        |
      |   1     raheem   mca                          | 
      |   2     sudheer  mca                          |
      | ----------------------------------------------|
      |     student no:1002                           |
      |   address:ongole,A.P,                         |
      |           hyderabad,india.                    |
      ------------------------------------------------|-
      |       student no:1003                         |
      |   address:ongole,A.P,                         |
      |           hyderabad,india.                    | 
     -|---------------------------------------------- |

我的代码是

private void BtnImpstrm_Click(object sender, EventArgs e)
        {
            openFileDialog1.ShowDialog();
            string f = openFileDialog1.FileName;
            StreamReader sr = new StreamReader(f);
            string s = sr.ReadToEnd();
            MessageBox.Show(s);
            sr.Close();
            str =s.Split('\n');
            for (int i = 0; i < str.Length; i++)
            {
                if (str[i].ToString().Trim().ToUpper().Contains("Student NO :  1001"))
                {
                    string[] words = str[i].Split(' ');
                    string output = words[word no].ToString().Trim();
                    string rec1 =str[line no].ToString().Trim();
                    string rec2 = str[line no].ToString().Trim();
                    MessageBox.Show(output);
                    MessageBox.Show(rec1);
                    MessageBox.Show(rec2);

                }
            }

        }  

1 个答案:

答案 0 :(得分:0)

我认为你最好的选择是使用StreamReader逐行阅读,如果你遇到“学生......”或类似内容,请阅读接下来的7行来完成你的记录。执行此操作后,您将拥有一组字符串,每个字符串都是文件中的唯一记录。

然后,您可以通过在Environment.NewLine上分割字符串来单独解析每条记录。