首页 > 代码库 > C#基础第五天-作业答案-用DataTable制作名片集

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#基础第五天-作业答案-用DataTable制作名片集