2011-09-12 34 views
2

我正在开发使用C#的Windows项目。我必须将文本文件记录导入到sqlserver 2005 db。 我的问题是 我想使用学生Idno从文​​本文件中读取记录。如何获取基于键值的文本文件中输入的记录

我有一个想法,从文本文件中使用正在查找学号:1001值的字符串读取确切值。 我想根据特定的学生阅读每个学生的记录吗?不适用于1001

所以我想要根据学生号码读取特定记录的代号为 我的选择。 PLZ帮我.......这样

 
     |-----------------------------------------------| 
     |   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

为什么你总是在循环中使用'str [6]'和'str [7]'? –

+1

我看不到问题。 – Amy

+0

你是生成文本文件格式的人吗? –

回答

0

我认为最好的办法是使用的StreamReader读取线如果您遇到“学生...”或类似的东西,请阅读下面的7行来完成您的记录。做完这些之后,您将获得一组字符串,每个字符串都是文件中的唯一记录。

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

相关问题