我正在使用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);
}
}
}
答案 0 :(得分:0)
我认为你最好的选择是使用StreamReader逐行阅读,如果你遇到“学生......”或类似内容,请阅读接下来的7行来完成你的记录。执行此操作后,您将拥有一组字符串,每个字符串都是文件中的唯一记录。
然后,您可以通过在Environment.NewLine上分割字符串来单独解析每条记录。