C#基础第五天-作业答案-用DataTable制作名片集
1.DataTable 实现 DataTable PersonCard = new DataTable(); //创建一个DataTable DataTable PersonCardCopy = new DataTable(); PersonCard.Columns.Add("姓名"); //添加列 名称 PersonCard.Columns.Add("年龄"); //添加列 年龄 PersonCard.Columns.Add("性别"); //添加列 性别 PersonCard.Columns.Add("爱好"); //添加列 爱好 PersonCard.Columns.Add("电话"); //添加列 电话 PersonCard.Columns.Add("状态"); //添加列 状态 (1新增 2修改) string Stop = string.Empty; //控制循环停止 do { Console.WriteLine("请输入您的姓名"); string name = Console.ReadLine(); //获取输入信息 Console.WriteLine("请输入您的年龄"); string age = Console.ReadLine(); Console.WriteLine("请输入您的性别"); string sex = Console.ReadLine(); Console.WriteLine("请输入您的爱好"); string hobby = Console.ReadLine(); Console.WriteLine("请输入您的联系方式"); string phone = Console.ReadLine(); DataRow PersonRow = PersonCard.NewRow(); //实例化表行 PersonRow["姓名"] = name; //给表行按列名增加信息 PersonRow["年龄"] = age; PersonRow["性别"] = sex; PersonRow["爱好"] = hobby; PersonRow["电话"] = phone; PersonRow["状态"] = "1"; Console.WriteLine("是否提交该条信息,t/f"); string submit=Console.ReadLine(); if (submit == "t") //提交信息,改变行状态 { PersonRow["状态"] = " "; //赋值 } else { PersonRow["状态"] = "1"; //赋值 } PersonCard.Rows.Add(PersonRow); //向表中增加行 Console.WriteLine("是否继续增加人员信息,y/n"); Stop = Console.ReadLine(); } while (Stop != "n"); int command=0 ; //变量 操作指令 string NameFind = string.Empty; //查询人员 string Name= string.Empty; //修改人员 string Lie = string.Empty; //修改的列 string UpdateMessage = string.Empty; do { try { Console.WriteLine("请输入操作指令(1查询全部 2单个查询 3修改信息 4删除信息 5查找已经删除信息)"); command = Convert.ToInt32(Console.ReadLine()); if (command ==1) //查询全部 { foreach (DataRow dataRows in PersonCard.Rows) //查询全部 { Console.WriteLine(@"姓名:{0} 年龄:{1} 性别:{2} 爱好:{3} 电话:{4} 状态:{5}", dataRows["姓名"].ToString(), dataRows["年龄"].ToString(), dataRows["性别"].ToString(), dataRows["爱好"].ToString(), dataRows["电话"].ToString(), dataRows["状态"].ToString()); } } if (command ==2) //单个查询 { try { Console.WriteLine("请输入您要查询的人员姓名"); NameFind = Console.ReadLine(); DataRow[] dataRows = PersonCard.Select("姓名='" + NameFind + "'"); //根据从NameFind中获取的值在DataTable中查询行数据 Console.WriteLine(@"姓名:{0} 年龄:{1} 性别:{2} 爱好:{3} 电话:{4}", dataRows[0]["姓名"], dataRows[0]["年龄"], dataRows[0]["性别"], dataRows[0]["爱好"], dataRows[0]["电话"]);//显示获取的第0行“Name”列的值 } catch { Console.WriteLine("对不起,没有您要查找的人员!"); } Console.ReadLine(); } if (command == 3) //修改信息 { //判断是否存在此人 Console.WriteLine("请输入您要修改的人员"); Name = Console.ReadLine(); if (PersonCard.Select("姓名='" + Name + "'").Length == 0) { Console.WriteLine("查询不到您要修改的人员"); continue; } //获取人员信息 DataRow[] rows = PersonCard.Select("姓名='" + Name.ToString().Trim() + "'"); //判断是否存在要修改的列 Console.WriteLine("请输入您要修改列"); Lie = Console.ReadLine(); if (!PersonCard.Columns.Contains(Lie)) //没有这列 { Console.WriteLine("查询不到您要修改的列"); continue; } //修改内容 Console.WriteLine("请输入您修改后的内容"); string message = Console.ReadLine(); foreach (DataRow row in rows) { row[Lie] = message; row["状态"] = "2"; } //获取修改后的人员信息 foreach (DataRow row in rows) { Console.WriteLine(@"姓名:{0} 年龄:{1} 性别:{2} 爱好:{3} 电话:{4}", row[0].ToString(), row[1].ToString(), row[2].ToString(), row[3].ToString(), row[4].ToString());//显示获取的第0行“Name”列的值 } } if (command == 4) //删除信息 { //判断是否存在此人 Console.WriteLine("请输入您要的删除的人员"); string DeleteName = Console.ReadLine(); if (PersonCard.Select("姓名='" + DeleteName + "'").Length == 0) { Console.WriteLine("查询不到您要修改的人员"); continue; } //获取要删除人员的行信息,存入到另一个Datatable中 DataRow[] rows = PersonCard.Select("姓名='" + DeleteName.ToString().Trim() + "'"); PersonCardCopy = PersonCard.Clone(); PersonCardCopy.ImportRow(rows[0]); //删除此人 foreach(DataRow row in rows ) { PersonCard.Rows.Remove(row); } //显示删除后的数据 foreach (DataRow dataRows in PersonCard.Rows) //查询全部 { Console.WriteLine(@"姓名:{0} 年龄:{1} 性别:{2} 爱好:{3} 电话:{4} 状态:{5}", dataRows["姓名"].ToString(), dataRows["年龄"].ToString(), dataRows["性别"].ToString(), dataRows["爱好"].ToString(), dataRows["电话"].ToString(), dataRows["状态"].ToString()); } } if (command == 5) //查找已删除信息 { foreach (DataRow dataRows in PersonCardCopy.Rows) //查询全部 { Console.WriteLine(@"姓名:{0} 年龄:{1} 性别:{2} 爱好:{3} 电话:{4} 状态:{5}", dataRows["姓名"].ToString(), dataRows["年龄"].ToString(), dataRows["性别"].ToString(), dataRows["爱好"].ToString(), dataRows["电话"].ToString(), dataRows["状态"].ToString()); } } } catch { Console.WriteLine("您输入的操作指令有误,请重新输入!"); } Console.ReadLine(); } while (command!= 1||command!= 2||command!= 3||command!= 4||command!= 5); Console.ReadKey();
本系列教程:
C#基础总结之八面向对象知识点总结-继承与多态-接口-http://www.cnblogs.com/spring_wang/p/6113531.html
C#基础总结之七面向对象知识点总结1http://www.cnblogs.com/spring_wang/p/6113526.html
C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习http://www.cnblogs.com/spring_wang/p/6113520.html
C#基础总结之五Dictionary<string, string[]>和while循环http://www.cnblogs.com/spring_wang/p/6113514.html
C#基础总结之四List-Hashtable-冒泡排序http://www.cnblogs.com/spring_wang/p/6113504.html
C#基础总结之三循环控制-for-数组-乘法表-arraylisthttp://www.cnblogs.com/spring_wang/p/6113496.html
C#基础总结之二循环控制-运算符http://www.cnblogs.com/spring_wang/p/6113484.html
C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换http://www.cnblogs.com/spring_wang/p/6113476.html
C#基础课程之六(临时表)DataTable使用方法http://www.cnblogs.com/spring_wang/p/6113454.html
C#基础课程之五集合(HashTable,Dictionary)http://www.cnblogs.com/spring_wang/p/6113404.html
C#基础课程之四集合(ArrayList、List<泛型>)http://www.cnblogs.com/spring_wang/p/6113396.html
C#基础课程之三循环语句http://www.cnblogs.com/spring_wang/p/6113383.html
C#基础课程之二变量常量及流程控制http://www.cnblogs.com/spring_wang/p/6113372.html
C#基础课程之一注释和控制台、一些常识http://www.cnblogs.com/spring_wang/p/6113361.html
C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113291.html
C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113285.html
C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113274.html
C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113258.html
C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113232.html
C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113224.html
C#基础第六天-作业-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113028.html
C#基础第六天-作业答案-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113033.html
C#基础第五天-作业答案-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113022.html
C#基础第五天-作业-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113013.html
C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113005.html
C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113000.html
C#基础第三天-作业答案-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112888.html
C#基础第三天-作业-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112885.html
C#基础第二天-作业答案-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112881.html
C#基础第二天-作业-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112875.html
C#基础第一天-作业答案http://www.cnblogs.com/spring_wang/p/6112872.html
C#基础第一天-作业http://www.cnblogs.com/spring_wang/p/6112867.html
C#-string.Format对C#字符串格式化http://www.cnblogs.com/spring_wang/p/6077098.html
作者: 王春天 出处: http://www.cnblogs.com/spring_wang/ Email: spring_best@yeah.net QQ交流:903639067
QQ群:322581894 关于作者: 大连天翼信息科技有限公司 技术总监。 SNF快速开发平台 创始人。应用平台架构师、IT规划咨询专家、业务流程设计专家。 专注于快速开发平台的开发、代码生成器。同时专注于微软平台项目架构、管理和企业解决方案,多年项目开发与管理经验,精通DotNet系列技术Vue、.NetCore、MVC、Webapi、C#、WinForm等,DB(SqlServer、Oracle等)技术,移动端开发。熟悉Java、VB及PB开发语言。在面向对象、面向服务以及数据库领域有一定的造诣。现从事项目实施、开发、架构等工作。并从事用友软件产品U8、U9、PLM 客开工作。 如有问题或建议,请多多赐教! 本文版权归作者和CNBLOGS博客共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过邮箱或QQ 联系我,非常感谢。