请教各位C#高手!

问题描述

小弟初学C#,有一道题想问各位高手就是我做了一个WinForms界面,输入完信息之后保存在Customer.txt文件中使用StreamWriter写入文件,写入没问题,但是我想在用户输入一个姓名后点击搜索按钮就能从文本文件中查找相应人的信息,请问各位高手如何实现呢?最好能提供一段简单的代码,谢谢!

解决方案

解决方案二:
所有用户的信息都在Customer.txt文件中吗?一个用户一行纪录?
解决方案三:
是这样的一个客户有如下记录姓名地址电话我想通过文本框输入的姓名搜索客户的信息
解决方案四:
我明白你的意思,我的意思是用户有很多吧,是不是所有的用户信息都存在Customer.txt文件中?你写入文件的时候格式是怎么样的?
解决方案五:
你只能挨行的读取数据然后对比,用个access吧
解决方案六:
一个一个记录的写如
解决方案七:
最好用XML文件,估计会好用些,楼主可以自己去试试privatevoidbtnQuery_Click(objectsender,System.EventArgse){XmlDocumentdoc=newXmlDocument();doc.Load(Server.MapPath(".\db\dbGuest.xml"));lbEmail.Text=doc.SelectSingleNode("//User[Name='"+ddlName.SelectedItem.Text+"']").ChildNodes.Item(2).InnerText;}
解决方案八:
小弟初学,还没有学习过XML谢谢
解决方案九:
如果是文本文件,肯定要逐行搜索,如果是xml文件,可以使用xpath查找
解决方案十:
请问如何逐行搜索呢以下是我添加文本的代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Collections;namespaceTest2{publicpartialclassForm1:Form{privateStreamWritersw;privateHashtableht;publicForm1(){InitializeComponent();}privatevoidbtnAdd_Click(objectsender,EventArgse){if(File.Exists(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt")){sw=File.AppendText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}else{sw=File.CreateText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}//将对象封装在Hashtable中ht=newHashtable();ht.Add("姓名",this.txtName.Text);ht.Add("住址",this.txtAddress.Text);ht.Add("电话",this.txtTel.Text);//写入文本文件foreach(DictionaryEntrydeinht){try{sw.WriteLine("{0}:{1}",de.Key.ToString(),de.Value.ToString());sw.WriteLine();}catch(Exceptionex){MessageBox.Show(ex.Message);}}sw.Close();MessageBox.Show("客户信息添加成功!");}}}
解决方案十一:
StreamReadersr=newStreamReader("文件的路径");while(!sr.EndOfStream){stringname=sr.ReadLine();if(name=="要查询的名字"){tbAddress.Text=sr.ReadLine();tbPhone.Text=sr.ReadLine();}}

解决方案十二:
不行啊,查询不到
解决方案十三:
为什么查询不到?把你的查询代码发上来看看
解决方案十四:
accp现在不是都5.0了么
解决方案十五:
privatevoidbtnSearch_Click(objectsender,EventArgse){MessageBox.Show(this.txtName.Text);StreamReadersr=newStreamReader(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");//获得用户输入的名字while(!sr.EndOfStream){stringname=sr.ReadLine();if(name==this.txtName.Text){this.txtAddress.Text=sr.ReadLine();this.txtTel.Text=sr.ReadLine();}}}
解决方案:
完整版的usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;usingSystem.Collections;namespaceTest2{publicpartialclassForm1:Form{privateStreamWritersw;privateHashtableht;publicForm1(){InitializeComponent();}privatevoidbtnAdd_Click(objectsender,EventArgse){if(File.Exists(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt")){sw=File.AppendText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}else{sw=File.CreateText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}//将对象封装在Hashtable中ht=newHashtable();ht.Add("姓名",this.txtName.Text);ht.Add("住址",this.txtAddress.Text);ht.Add("电话",this.txtTel.Text);//写入文本文件foreach(DictionaryEntrydeinht){try{sw.WriteLine("{0}:{1}",de.Key.ToString(),de.Value.ToString());sw.WriteLine();}catch(Exceptionex){MessageBox.Show(ex.Message);}}sw.Close();MessageBox.Show("客户信息添加成功!");}privatevoidbtnExit_Click(objectsender,EventArgse){Application.Exit();}privatevoidbtnSearch_Click(objectsender,EventArgse){StreamReadersr=newStreamReader(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");while(!sr.EndOfStream){stringname=sr.ReadLine();if(name==this.txtName.Text){this.txtAddress.Text=sr.ReadLine();this.txtTel.Text=sr.ReadLine();}}}}}
解决方案:
把if(name==this.txtName.Text)改成if(name.Contains(this.txtName.Text))
解决方案:
为什么没有查找到电话呢?
解决方案:
因为你写的时候多sw.WriteLine()了一次
解决方案:
引用17楼realliuchu的回复:

为什么没有查找到电话呢?

要么把sw.WriteLine()去掉要么在读文件的时候在this.txtAddress.Text=sr.ReadLine();this.txtTel.Text=sr.ReadLine();中间再加一个sr.ReadLine();
解决方案:
usingSystem.Collections.Generic;privatevoidbtnAdd_Click(objectsender,EventArgse){StreamWritersw=null;try{if(File.Exists(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt")){sw=File.AppendText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}else{sw=File.CreateText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}Dictionary<string,string>ht=newDictionary<string,string>();ht.Add("姓名",this.txtName.Text);ht.Add("住址",this.txtAddress.Text);ht.Add("电话",this.txtTel.Text);//写入文本文件foreach(KeyValuePair<string,string>deinht){sw.WriteLine("{0}:{1}",de.Key,de.Value);}}catch(Exceptionex){MessageBox.Show(ex.Message);}sw.Close();MessageBox.Show("客户信息添加成功!");}privatevoidbtnSearch_Click(objectsender,EventArgse){StreamReadersr=newStreamReader(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");stringname=sr.ReadLine();while(!string.IsNullOrEmpty(name)){if(name.Split(':')[1].Trim()==this.txtName.Text.Trim()){this.txtAddress.Text=sr.ReadLine().Split(':')[1].Trim();this.txtTel.Text=sr.ReadLine().Split(':')[1].Trim();}name=sr.ReadLine();}}

解决方案:
我记得是个20分的题,怎么变100分了?
解决方案:
以行为单位存储是关键下面是我做过的一个例子的逐行检索想要的信息frmSelectfs=newfrmSelect();fs.ShowDialog();stringsele=fs.num+"t";StreamReadersr=newStreamReader("E:\Employee.txt");stringa;al=newArrayList();while(true){a=sr.ReadLine();if(a==null){break;}al.Add(a);}sr.Close();stringnam="";for(i=0;i<al.Count;i++){nam=al[i].ToString().Substring(al[i].ToString().IndexOf(":")+1,al[i].ToString().IndexOf("姓名:")-al[i].ToString().IndexOf(":")-1);if(nam==sele){break;}}stringfindinfor=(al[i].ToString());this.txtNum.Text=findinfor.Substring(findinfor.IndexOf(":")+1,findinfor.IndexOf("t姓名:")-findinfor.IndexOf(":")-1);this.txtName.Text=findinfor.Substring(findinfor.IndexOf("姓名:")+3,findinfor.IndexOf("t部门:")-findinfor.IndexOf("姓名:")-3);this.txtPart.Text=findinfor.Substring(findinfor.IndexOf("部门:")+3,findinfor.IndexOf("t工资:")-findinfor.IndexOf("部门:")-3);this.txtPrice.Text=findinfor.Substring(findinfor.IndexOf("工资:")+3,findinfor.Length-findinfor.IndexOf("工资:")-3);this.txtNum.ReadOnly=true;this.btnUpdate.Enabled=true;我这个例子完整了对文本信息的增删改查如果需要其他部分的代码可以联系我我是小菜鸟!说的不好清见谅,希望能够帮到你!
解决方案:
StreamWritersw=null;try{if(File.Exists(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt")){sw=File.AppendText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}else{sw=File.CreateText(@"E:ACCP4.0-S2C#第十二章Test2Customer.txt");}Dictionary<string,string>ht=newDictionary<string,string>();ht.Add("姓名",this.txtName.Text);ht.Add("住址",this.txtAddress.Text);ht.Add("电话",this.txtTel.Text);//写入文本文件foreach(KeyValuePair<string,string>deinht){sw.WriteLine("{0}:{1}",de.Key,de.Value);}}catch(Exceptionex){MessageBox.Show(ex.Message);}sw.Close();

解决方案:
为什么不用INI文件呢???INI文件算文本文件吧!
解决方案:
这么多高手,学习了。
解决方案:
该回复于2008-06-11 15:28:51被版主删除
解决方案:
难道楼主的问题还没解决?

时间: 2024-10-02 23:56:48

请教各位C#高手!的相关文章

r语言-TEST2:R语言算法请教,还请高手回复

问题描述 TEST2:R语言算法请教,还请高手回复 TEST2:R语言算法请教,还请高手回复,凑字数为凑字数到30个字 有点难度呀 解决方案 TEST 回答问题,自己可以回答自己的问题吗? 解决方案二: TEST 测试顶踩 发送不了了

.net拖控件和不拖控件的区别!?一直没有理会过 今天请教下各位高手

问题描述 我用.net开发时间也不短了也是从美工作图flash到asp程序access到sql再到现在net+sql2005的我开发.net一直都是用asp的写法去写的包括什么分页啊上传啊什么的.代码都写在aspx.cs里用的是c#语言也用.value来获取值控件嘛也拖但是都拖的是form之类的控件而且拖进去后自己在.cs里自己写代码这样做多余吗?包括jsajax都是自己来写html也是自己用cs5写div和css最后发布网站全部编译成dll然后传到空间上这样做有何不妥?而且如果别人开发好的.n

请教tomcat6.0做为web服务器, Microsoft sql 2005 做数据库,Myeclipse 6.0 开发工具运行问题,请教各位精通高手

问题描述 2012-4-25 12:25:48 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:MyEclipse 6.0bin;D:Tomcat

请教IMB的高手

问题描述 1.IM-Management:对应产品DB22.WebsphereConectivity:对应产品MB,MQ3.Cognos:对应产品CognosBI4.WebsphereBusinessProcessManagement:对应产品WebsphereProcessServer5.LotusPortal:对应产品Portal请问以上这五项都是做什么的啊?? 解决方案 解决方案二:本帖最后由 lucasma 于 2009-12-04 10:19:38 编辑

求助高手关于java对flash的应用

问题描述 最近我在做一个关于运用swing来播放flashvideo(flv)的一个应用程序播放器,我开始使用了JFlashPlay的开源包,但是做出来不支持flv,只能运用于swf格式的,在此请教各位前辈高手给我一点指引,有不有开源给我用一下,最好有做过的高手给个实例,那不很感谢,小妹在此谢谢了!请大家帮帮帮尽快,好吗?

关于JsonConvert.SerializeObject找不到源码的问题,求高手帮忙看看,急

问题描述 我下载了Newtonsoft.Json.dll,打算把一个数据转换成JSON类型然后就在转换这一步就出现问题了断点打在转换这里监视里面显示数据是转换好了的然后F11,就出现如下问题了于是导致程序进行不下去了请教下各位高手,这是哪里出了问题啊?先谢谢了 解决方案 解决方案二:单步调试的时候,如果没有源代码就无法定位,按F10不要跟踪进去.解决方案三:从错误信息看,感觉是Newtonsoft.Json.dll的问题,换个版本试一下解决方案四:直接引用其DLL文件,不要把它的源代码放入你的解

复制网页内容自动添加版权信息的方法(兼容IE、Firefox和Chrome)

复制网内容自动添加版权信息的方法 在网上一搜可以看到很多类似的代码,加入网页body部分就可以. 例如下面这段代码: //复制内容自动添加版权信息  document.body.oncopy = function ()   {      setTimeout(          function ()          {              var text = clipboardData.getData("text");              if (text)     

使用jdom操作xml数据,生成含Jtree的applet

dom|xml|数据 转自:http://www.softhouse.com.cn/html/200410/2004102517145700001335.html 使用jdom操作xml数据,生成含Jtree的applet    在我们工作中,常常会碰到树形组件的生成问题,如果你在开发web application,纯粹使用javascript来生成树形组件是非常繁琐的,而且交互性也不不太好.所以许多产品使applet来实现树形组件的功能.比如说,weblogic,jboss等产品的consol

清明节新解之SEO优化精髓篇

清明时节雨纷纷, 路上行人欲断魂.除了这特别的日子,不知道是难得的休闲还是最重要的祭祀节日外,能让我们揪心的还是那些忽上忽下的排名.SEO优化技巧,最新的SEO优化方法,不知道"白"了多少少年头? 什么是SEO优化?相信各位看官都能各抒己见,毕竟基础SEO知识很容易学,价值经验却不容易获得.最近遇见了一些新人,也请教了一些高手,感谢他们让我感受到SEO行业与时俱进的正能量.趁着清明前难得的悠闲,总结一些SEO优化精髓技巧. 1.SEO精髓之写文章. 我们梦想着网络行业的巨大财富,走过了