📄 clientlistpanel.cs
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using DataBaseManagerLibrary;
namespace ClientListPanelLibrary
{
public partial class ClientListPanel : UserControl
{
private DataBaseManager DBManager;
private Int64 dealID,insertDealID;
private int selectedIndex;
public ClientListPanel()
{
InitializeComponent();
/*String SqlConnectInfo = "server=localhost;database=CommnityManagementSystem;uid=sa;pwd=''";
DBManager = new DataBaseManager(SqlConnectInfo);*/
reset();
}
private void bSearch_Click(object sender, EventArgs e)
{
String cmd;
if (checkInput("Select") == false) return; //用户输入不合法
cmd = generateSelectCommand(); //根据输入情况生成相应的命令
DataTable dataTable = DBManager.ExecuteSelectCommand(cmd);
if (dataTable == null)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (dataTable.Rows.Count == 0)
{//没有搜索到对应信息,显示一个空的DataGridView
dataGridView.DataSource = dataTable;
return;
}
else
{//至少找到一条信息,将信息显示到DataGridView,并将第一条信息详细列出
dataGridView.DataSource = dataTable;
showDetailInfo(0);
}
}
public void visilize() {
reset(); //将各个控件置为初始状态
this.Visible = true;
}
public void disVisilize() {
this.Visible = false;
}
public void setDataBaseManager(DataBaseManager DBManager){
this.DBManager=DBManager;
}
private bool ErrorMessage(String msg) {
MessageBox.Show(msg);
return false;
}
private void dataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1 || e.RowIndex >= dataGridView.Rows.Count-1) return; //选择多行或选择列标签
showDetailInfo(e.RowIndex);
selectedIndex = e.RowIndex;
}
private void bDelete_Click(object sender, EventArgs e)
{
String cmd = generateDeleteCommand();
int affectRows = DBManager.Execute(cmd);
if (affectRows == -1)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (affectRows == 0) {
MessageBox.Show("此数据已被其他登陆用户删除");
}
if (selectedIndex == dataGridView.Rows.Count - 2) {
dataGridView.Rows.Remove(dataGridView.Rows[selectedIndex]);
selectedIndex--;
if (selectedIndex == -1){//若DataGridView没有数据则重置界面
reset();
return;
}
}
else dataGridView.Rows.Remove(dataGridView.Rows[selectedIndex]);
showDetailInfo(selectedIndex);
}
//////////////////////////////////////////////////////////
private void bAdd_Click(object sender, EventArgs e)
{
String cmd;
if (checkInput("Insert") == false) return;//用户输入错误
cmd = generateSelectCommand(); //首先查找数据库中有没有相同内容的行
DataTable dataTable = DBManager.ExecuteSelectCommand(cmd);
if (dataTable == null)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (dataTable.Rows.Count > 0)
{
MessageBox.Show("数据库中已存在相同信息");
return;
}
//将信息添加到数据库
cmd = generateInsertCommand(); //根据输入情况生成相应的命令
int affectedRows = DBManager.Execute(cmd);
if (affectedRows == -1)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (affectedRows == 0)
{//
MessageBox.Show("插入失败");
return;
}
else
{//插入成功,
showDetailInfo(selectedIndex);//显示插入前的一行
/*DataRow row = new DataRow();
row.set
row.ItemArray={insertDealID,tbName.Text};
DataGridViewCell[] cell = new DataGridViewCell[6];
for (int i = 0; i < 6; i++) cell[i] = new DataGridViewCell();
row.Cells = cell;
row.Cells[0].Value=insertDealID;
row.Cells[1].Value=tbName.Text;
row.Cells[2].Value=cbSex.Text;
row.Cells[3].Value=int.Parse(tbAge.Text);
row.Cells[4].Value=tbWork.Text;
row.Cells[5].Value=cbPreferedCategory.Text;
row.Cells[6].Value=tbPreferedArea.Text;
dataGridView.Rows.Add(row);
int idx = dataGridView.Rows.IndexOf(row);
selectedIndex = idx;
showDetailInfo(idx);
*/
}
}
private void reset()
{
dealID = 0;
selectedIndex = -1;
bModify.Enabled = false;
bDelete.Enabled = false;
tbName.Text = ""; //清空TextBox及ComboBox
cbSex.Text = "";
tbAge.Text = "";
tbWork.Text = "";
tbTel.Text = "";
tbCellPhone.Text = "";
cbPreferedCategory.Text = "";
cbPreferedCategory.Text = "";
tbPreferedArea.Text = "";
tbPrepayAmmount.Text = "";
tbUsage.Text = "";
tbAddress.Text = "";
}
private void bModify_Click(object sender, EventArgs e)
{
String cmd;
if (checkInput("Modify") == false) return; //用户输入不合法
cmd = generateUpdateCommand(); //根据输入情况生成相应的命令
int affectRows = DBManager.Execute(cmd);
if (affectRows == -1)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (affectRows == 0)
{//没有搜索到对应信息
MessageBox.Show("信息可能已被其他用户删除");
return;
}
else
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -