c#窗体程序个人通讯录

求按姓名模糊查询和按性别模糊查询的代码,以及(增删改的代码,我的代码运行一点开就乱码了)
删除所选联系人代码:

        private void button2_Click(object sender, EventArgs e)
        {
            string name = textBox1.Text;
            string filePath = dizhi;
            string tempFilePath = Path.GetTempFileName();
            using (StreamReader reader = new StreamReader(filePath))
            {
                using (StreamWriter writer = new StreamWriter(tempFilePath))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        string[] parts = line.Split(',');
                        if (parts[0] != name)
                        {
                            writer.WriteLine(line);
                        }
                    }
                }
            }
            File.Delete(filePath);
            File.Move(tempFilePath, filePath);
            textBox1.Text = "";
            textBox2.Text = "";
            textBox3.Text = "";
            textBox4.Text = "";
            textBox5.Text = "";
            using (StreamReader reader = new StreamReader(dizhi, Encoding.Default))
            {
                string line = null;
                listBox1.Items.Clear();
                while ((line = reader.ReadLine()) != null)
                {
                    string[] lineArray = line.Split(',');
                    listBox1.Items.Add(lineArray[0]);
                }
            }
        }

新增:

 private void button3_Click(object sender, EventArgs e)
        {
            using (StreamWriter writer = new StreamWriter(dizhi, true, Encoding.Default))
            {
                string line = textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + "," + textBox4.Text + "," + textBox5.Text;
                writer.WriteLine(line);
            }
            using (StreamReader reader = new StreamReader(dizhi, Encoding.Default))
            {
                string line = null;
                listBox1.Items.Clear();
                while ((line = reader.ReadLine()) != null)
                {
                    string[] lineArray = line.Split(',', ',', ',', ',');
                    listBox1.Items.Add(lineArray[0]);
                }
            }
        }

修改:

private void button4_Click(object sender, EventArgs e)
        {
            string name = textBox1.Text;
            string sex = textBox2.Text;
            string home = textBox3.Text;
            string phone = textBox4.Text;
            string qq = textBox5.Text;
            string filePath = dizhi;
            string tempFilePath = Path.GetTempFileName();
            using (StreamReader reader = new StreamReader(filePath))
            {
                using (StreamWriter writer = new StreamWriter(tempFilePath))
                {
                    string line;
                    while ((line = reader.ReadLine()) != null)
                    {
                        string[] parts = line.Split(',');
                        if (parts[0] != name)
                        {
                            writer.WriteLine(line);
                        }
                    }
                }
            }
            File.Delete(filePath);
            File.Move(tempFilePath, filePath);
            using (StreamWriter writer = new StreamWriter(dizhi, true, Encoding.Default))
            {
                string line = textBox1.Text + "," + textBox2.Text + "," + textBox3.Text + "," + textBox4.Text + "," + textBox5.Text;
                writer.WriteLine(line);
            }
            using (StreamReader reader = new StreamReader(dizhi, Encoding.Default))
            {
                string line = null;
                listBox1.Items.Clear();
                while ((line = reader.ReadLine()) != null)
                {
                    string[] lineArray = line.Split(',', ',', ',', ',');
                    listBox1.Items.Add(lineArray[0]);
                }
            }
        }

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7808096
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:C#窗体应用利用文本框对数据库一行多个数据进行增、删、该、查相关语句代码
  • 除此之外, 这篇博客: C# 构造函数和析构函数中的 构造函数和析构函数是C#类中的一块,具体的作用和定义,百度,这里只用代码说一下一些具体的区别。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  •  

        public class ABC //一个随意的自定义类
        {
            private double a;
            public double A
            {
                get { return a; }
                set
                {
                    a = value;
                    Console.WriteLine("A={0}", a);
                }
            }
            public ABC()
            {
                Console.WriteLine("构造函数ABC被触发");
            }
            ~ABC()
            {
                Console.WriteLine("构析函数ABC~被触发");
            }
        }
        
        class Program
        {
            static void Main(string[] args)
            {
    
                ABC _abc;
    
                Console.WriteLine("A有了,按任意键初始化A");
                Console.ReadLine();
    
                _abc = new ABC() { A = 12 };//初始化对象并赋一个值
    
    
    
    
                Console.WriteLine("按任意键,清除A的值");
                Console.ReadLine();
    
    
                _abc = null;//释放A所占的内存
    
    
                if (_abc == null)
                    Console.WriteLine("A==null");
                else
                    Console.WriteLine("A的值为:{0}", _abc.A);
                Console.WriteLine("按任意键,回收A");
                Console.ReadLine();
    
    
                GC.Collect();//启动垃圾回收机制,回收不需要的对象A
                Console.ReadLine();
            }
        }

    上述代码说明:

    1.构造函数在类实例化的时候被触发

    2.析构函数在类被回收的时候触发

        class Program
        {
            static void Main(string[] args)
            {
    
                Third third = new Third();
                third = null;
                GC.Collect();
    
                Console.ReadLine();
            }
        }
    
        public  class First                     // 基类First
        {
            public First()
            {
                Console.WriteLine("~First()构造函数");
            }
            ~First()                    // 析构函数
            {
                Console.WriteLine("~First()析构函数");
            }
        }
        public class Second : First            // Second类从First类派生
        {
            public Second()
            {
                Console.WriteLine("~Second()构造函数");
            }
            ~Second()                   // 析构函数
            {
                Console.WriteLine("~Second()析构函数");
            }
        }
        public class Third : Second            // Third类从Second类派生
        {
            public Third()
            {
                Console.WriteLine("~Third()构造函数");
            }
            ~Third()                    // 析构函数
            {
                Console.WriteLine("~Third()析构函数");
            }
        }

    上述代码说明:

    1.子类的生成和回收会触发父类的构造函数和析构函数

    2.构造函数的调用从父类开始,二析构函数则相反

     

  • 您还可以看一下 王翔老师的毕业设计精品课之基于C#企业员工管理系统实战讲解课程中的 毕业设计 员工管理系统 功能介绍小节, 巩固相关知识点

补充:用button控件实现按姓名和性别模糊查询