求按姓名模糊查询和按性别模糊查询的代码,以及(增删改的代码,我的代码运行一点开就乱码了)
删除所选联系人代码:
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]);
}
}
}
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.构造函数的调用从父类开始,二析构函数则相反
补充:用button控件实现按姓名和性别模糊查询