1. Primero cree la clase DBhelp para conectarse a la base de datos, el código es el siguiente:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;
namespace TongxunLu
{
public static class DBHelp
{
static string sqlcon = "Data Source=.;Initial Catalog=TXL;Integrated Security=True";
public static SqlConnection con = new System.Data.SqlClient.SqlConnection(sqlcon);
public static SqlCommand cmd = new SqlCommand();
}
}
página de inicio de sesión:
Doble más código de inicio de sesión:
private void btnOK_Click(object sender, EventArgs e)
{
//验证用户名与密码非空
if (txtUserName.Text == "")
{
MessageBox.Show("用户名不能为空,请输入!");
txtUserName.Focus();
return;
}
if (txtUserPwd.Text == "")
{
MessageBox.Show("密码不能为空,请输入!");
txtUserPwd.Focus();
return;
}
//定义链接字符串和链接对象
string sqlcon = "Data Source=.;Initial Catalog=TXL;Integrated Security=True";
SqlConnection con = new System.Data.SqlClient.SqlConnection(sqlcon);
//操作数据库,实现登录功能
try
{
con.Open();
string sqlcomm = "select distinct COUNT(*) from Users where UserName='" + txtUserName.Text + "' and Password='" + txtUserPwd.Text + "'";
SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sqlcomm, con);
//cmd.Connection = con;
//cmd.CommandText = sqlcomm;
if ((int)cmd.ExecuteScalar() == 1)
{
// MessageBox.Show("登录成功");
Users.UserName = txtUserName.Text;
FrmMain fmain = new FrmMain();
fmain.Show();
}
else
{
MessageBox.Show("登录失败");
}
// MessageBox.Show("数据库打开成功", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
}
finally
{
con.Close();
// MessageBox.Show("数据库成功关闭", "提示信息", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);
}
}
Haga doble clic para cancelar, el código dentro:
private void btnCacel_Click(object sender, EventArgs e)
{
Application.Exit();
}
Ingrese la información en la tabla de usuarios para iniciar sesión:
2. Crea la página principal:
Agregar barra de menú, barra de herramientas, barra de estado
Controles de la barra de menús: MenuStrip lleva el nombre de mus
El nombre del proyecto comienza con tsm El proyecto en el proyecto se llama tsmi
Controles de la barra de herramientas: los elementos de ToolStrip muestran imágenes y texto para cambiar la propiedad DisplayStyle, barra de herramientas: comience con tst
Control de la barra de estado: StatusStrip, barra de estado: comience con el nombre de tss
Cuando se carga la página, ese usuario ha iniciado sesión, el estado usa el control Etiqueta para mostrar cuyo nombre, código:
private void FrmMain_Load(object sender, EventArgs e)
{
//接受登录名
toolStripStatusLabel2.Text += Users.UserName;
toolStripStatusLabel3.Text += GetNum(Users.UserName).ToString();
LoadGroup();
}
Los códigos de función detallados en la página principal son los siguientes:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace TongxunLu
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}
//显示添加窗体
public void add()
{
frmAdd fadd = new frmAdd();
fadd.Show();
}
//显示修改窗体
public void edit()
{
frmEdit fedit = new frmEdit();
fedit.Show();
}
//显示查询窗体
public void seacher()
{
frmSeach fseacher=new frmSeach ();
fseacher.Show();
}
//统计登录联系人的个数
public int GetNum(string str1)
{
int num = 0;
try
{
DBHelp.con.Open();
string sqlcomm = string.Format("select count(*) from BUsicInfo where UserName='{0}'",str1);
DBHelp.cmd.Connection = DBHelp.con;
DBHelp.cmd.CommandText = sqlcomm;
num = (int)DBHelp.cmd.ExecuteScalar();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
return num;
}
//统计登录联系人分组的个数
public int GetGroupsNum()
{
int num = 0;
try
{
DBHelp.con.Open();
string sqlcomm = string.Format("select count(*) from BUsicInfo where UserName='{0}' and groups='{1}'",Users.UserName,treeView1.SelectedNode.Text );
DBHelp.cmd.Connection = DBHelp.con;
DBHelp.cmd.CommandText = sqlcomm;
num = (int)DBHelp.cmd.ExecuteScalar();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
return num;
}
//加载treeview控件
public void LoadGroup()
{
try
{
DBHelp.con.Open();
string sqlcomm = string.Format("select groups from busicInfo where userName='{0}'",Users.UserName);
DBHelp.cmd.Connection = DBHelp.con;
DBHelp.cmd.CommandText = sqlcomm;
SqlDataReader dr = DBHelp.cmd.ExecuteReader();
while(dr.Read())
{
treeView1.Nodes.Add(dr[0].ToString());
}
dr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
}
//加载ListView控件
public void loadList()
{
if (treeView1.Nodes.Count == 0)
{
MessageBox.Show("请重新加载");
listView1.Items.Clear();
return;
}
if (treeView1.SelectedNode.Index >= 0)
{
listView1.Clear();
listView1.Columns.Add("姓名", 100);
listView1.Columns.Add("工作单位", 100);
listView1.Columns.Add("联系电话", 100);
listView1.Columns.Add("电子邮箱", 100);
listView1.Columns.Add("QQ", 100);
try
{
DBHelp.con.Open();
string sqlcomm = string.Format("select * from busicInfo where userName='{0}' and Groups='{1}'",Users.UserName,treeView1.SelectedNode.Text);
DBHelp.cmd.CommandText = sqlcomm;
DBHelp.cmd.Connection = DBHelp.con;
SqlDataReader dr = DBHelp.cmd.ExecuteReader();
while(dr.Read())
{
ListViewItem lvi = new ListViewItem();
lvi.Tag = dr[0];
lvi.Text = dr[3].ToString();
lvi.SubItems.Add(dr[4].ToString());
lvi.SubItems.Add(dr[5].ToString());
lvi.SubItems.Add(dr[6].ToString());
lvi.SubItems.Add(dr[7].ToString());
listView1.Items.Add(lvi);
}
dr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
}
}
private void 增加联系人ToolStripMenuItem_Click(object sender, EventArgs e)
{
add();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
add();
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
seacher();
}
private void FrmMain_Load(object sender, EventArgs e)
{
//接受登录名
toolStripStatusLabel2.Text += Users.UserName;
toolStripStatusLabel3.Text += GetNum(Users.UserName).ToString();
LoadGroup();
}
private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
loadList();
toolStripStatusLabel3.Text = GetGroupsNum().ToString();
}
}
}
3. Agregue una página de contacto:
Control Tablcontrol: opciones de paginación : utilizado para paginación: información básica y otra información
Haga doble clic en Aceptar, el código dentro:
private void btnAdd_Click(object sender, EventArgs e)
{
try
{
DBHelp.con.Open();
DBHelp.cmd.CommandText =string.Format("insert into BusicInfo(userName,Groups,Name,workUnit,Phone,Email,QQ)values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')",Users.UserName,cmbGroup.SelectedValue,txtName.Text,txtWorkUnit.Text,txtPhone.Text,txtEmail.Text,txtQQ.Text);
DBHelp.cmd.Connection = DBHelp.con;
if ((int)DBHelp.cmd.ExecuteNonQuery() == 1)
{
MessageBox.Show("添加成功");
}
else
{
MessageBox.Show("失败");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
}
Cargue la página, haga doble clic en la superficie de presión, el código dentro
public void LoadGroup()
{
try
{
DBHelp.con.Open();
string sqlcomm = string.Format("select groups from busicInfo where userName='{0}'", Users.UserName);
DBHelp.cmd.Connection = DBHelp.con;
DBHelp.cmd.CommandText = sqlcomm;
SqlDataReader dr = DBHelp.cmd.ExecuteReader();
while (dr.Read())
{
cmbGroup.Items.Add(dr[0].ToString());
}
dr.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
}
private void frmAdd_Load(object sender, EventArgs e)
{
LoadGroup();
}
4. Modificar la página:
5. Página de consulta:
Haga doble clic en el botón de consulta, el código dentro:
private void btnSeach_Click(object sender, EventArgs e)
{
string sqlcomm = "";
if(txtUserName.Text==""&&txtUserPhone.Text=="")
{
sqlcomm = string.Format("select * from BusicInfo ");
}
else if (txtUserName.Text == "")
{
sqlcomm = string.Format("select * from BusicInfo where Phone='%{0}%' ", txtUserPhone.Text);
}
else if (txtUserPhone.Text == "")
{
sqlcomm = string.Format("select * from BusicInfo where UserName='{0}%' ", txtUserName.Text);
}
else
{
sqlcomm = string.Format("select * from BusicInfo where UserName='{0}%' and Phone='{1}%' ", txtUserName.Text, txtUserPhone.Text);
}
try
{
DBHelp.con.Open();
SqlDataAdapter da = new SqlDataAdapter(sqlcomm,DBHelp.con);
DataSet ds = new DataSet();
da.Fill(ds);
dataGridView1.DataSource = ds.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
DBHelp.con.Close();
}
}
La funcionalidad no está completamente implementada, solo un ejemplo.