📄 tenementpanel.cs
字号:
}
private void bDelete2_Click(object sender, EventArgs e)
{
if (selectedIndex == -1) return;
String cmd = generateDeleteCommand2();
int affectRows = DBManager.Execute(cmd);
if (affectRows == -1)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (affectRows == 0)
{
MessageBox.Show("此数据已被其他登陆用户删除");
}
if (selectedIndex2 == dataGridView2.Rows.Count - 2)
{
dataGridView2.Rows.Remove(dataGridView2.Rows[selectedIndex2]);
selectedIndex2--;
if (selectedIndex2 == -1)
{//若DataGridView没有数据则重置界面
reset2();
return;
}
}
else dataGridView2.Rows.Remove(dataGridView2.Rows[selectedIndex2]);
showDetailInfo2(selectedIndex2);
}
private void bAdd2_Click(object sender, EventArgs e)
{
if (selectedIndex == -1) {
MessageBox.Show("先选择添加到的住户");
return;
}
Int64 id = (Int64)dataGridView.Rows[selectedIndex].Cells["住户编号"].Value;
String cmd;
if (checkInput2("Insert") == false) return;//用户输入错误
cmd = generateSelectCommand2(); //首先查找数据库中有没有相同内容的行
DataTable dataTable = DBManager.ExecuteSelectCommand(cmd);
if (dataTable == null)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (dataTable.Rows.Count > 0)
{
MessageBox.Show("数据库中已存在相同信息");
return;
}
//将信息添加到数据库
cmd = generateInsertCommand2(id); //根据输入情况生成相应的命令
int affectedRows = DBManager.Execute(cmd);
if (affectedRows == -1)
{ //数据库出错
MessageBox.Show(DBManager.errorMessage);
return;
}
else if (affectedRows == 0)
{//
MessageBox.Show("插入失败");
return;
}
else
{//插入成功,
showDetailInfo2(selectedIndex2);//显示插入前的一行
/*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 dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex == -1 || e.RowIndex >= dataGridView.Rows.Count - 1) return; //选择多行或选择列标签
showDetailInfo2(e.RowIndex);
selectedIndex2 = e.RowIndex;
}
private void reset2()
{
ID2 = 0;
selectedIndex2 = -1;
bModify2.Enabled = false;
bDelete2.Enabled = false;
button10.Enabled = false;
tbMemberTel.Text = "";
tbMemberSex.Text = "";
tbMemberName.Text = "";
tbRelation.Text = "";
}
private void showDetailInfo2(int idx)
{
if (idx < 0) return;
selectedIndex2 = idx;
ID2 = (Int64)dataGridView2.Rows[idx].Cells["住户编号"].Value;//得到用户选择的行的主键
DataTable dt = DBManager.ExecuteSelectCommand(String.Format("select * from 家庭成员信息 where 住户编号='{0}'", ID2));
if (dt == null)
{//数据库错误
MessageBox.Show(DBManager.errorMessage);
ID = 0;
return;
}
else if (dt.Rows.Count == 0)
{ //未找到此记录
MessageBox.Show("此记录可能已被其他用户删除");
ID = 0;
return;
}
tbMemberTel.Text=(Int64)dt.Rows[0]["移动电话"]+"";
tbMemberName.Text=(String) dt.Rows[0]["家庭成员姓名"];
tbMemberSex.Text=(String)dt.Rows[0]["性别"];
tbRelation.Text=(String)dt.Rows[0]["家庭关系"];
bModify2.Enabled = true;//此时可以操作修改、删除数据
bDelete2.Enabled = true;
button10.Enabled = true;
}
private bool checkInput2(String str)
{
tbMemberSex.Text = tbMemberSex.Text.Trim();
tbMemberName.Text = tbMemberName.Text.Trim();
tbMemberTel.Text = tbMemberTel.Text.Trim();
tbRelation.Text = tbRelation.Text.Trim();
if (str == "Insert" || str == "Modify")
{//以下是在更新或插入时检查输入是否为空
if (tbMemberSex.Text == "") return ErrorMessage("家庭成员姓名为空");
if (tbMemberName.Text == "") return ErrorMessage("性别为空");
if (tbMemberTel.Text == "") return ErrorMessage("电话为空");
if (tbRelation.Text == "") return ErrorMessage("家庭关系为空");
}
//下面为检查输入数字的TextBox和ComboBox的输入格式是否正确
if (tbMemberSex.Text != "" && tbMemberSex.Text != "男" && tbMemberSex.Text != "女") return ErrorMessage("性别输入错误");
//当此函数由查询按钮调用时,某些控件可能为空字符串,因此在转化前加了一个判断
try{
if (tbMemberTel.Text != "") Int64.Parse(tbMemberTel.Text); //
}catch{
return ErrorMessage("电话输入错误");
}
return true;
}
private String generateSelectCommand2()
{
String cmd = "Select 住户编号,家庭成员姓名,性别,家庭关系,移动电话 from 家庭成员信息 ";
bool cmdChanged = false;
if (tbMemberName.Text != "")
{
if (cmdChanged)
cmd = cmd + " and 家庭成员姓名='" + tbMemberName.Text + "'";
else
{
cmd = cmd + " where 家庭成员姓名='" + tbMemberName.Text + "'";
cmdChanged = true;
}
}
if (tbMemberSex.Text != "")
{
if (cmdChanged)
cmd = cmd + " and 性别='" + tbMemberSex.Text + "'";
else
{
cmd = cmd + " where 性别='" + tbMemberSex.Text + "'";
cmdChanged = true;
}
}
if (tbMemberTel.Text != "")
{
if (cmdChanged)
cmd = cmd + " and 移动电话='" + tbMemberTel.Text + "'";
else
{
cmd = cmd + " where 移动电话='" + tbMemberTel.Text + "'";
cmdChanged = true;
}
}
if (tbRelation.Text != "")
{
if (cmdChanged)
cmd = cmd + " and 家庭关系='" + tbRelation.Text + "'";
else
{
cmd = cmd + " where 家庭关系='" + tbRelation.Text + "'";
cmdChanged = true;
}
}
return cmd;
}
private String generateUpdateCommand2()
{
String cmd = "";
cmd = String.Format("update 家庭成员信息 set 家庭成员姓名='{0}',性别='{1}',家庭关系='{2}',移动电话='{3}'", tbOwnerName.Text, tbMemberSex.Text, tbRelation.Text, tbOwnerTel.Text);
cmd = cmd + String.Format(" where 住户编号='{0}'", ID2);
return cmd;
}
private String generateDeleteCommand2()
{
String cmd = String.Format("Delete from 家庭成员信息 where 住户编号='{0}'", dataGridView2.Rows[selectedIndex2].Cells["住户编号"].Value);
return cmd;
}
private String generateInsertCommand2(Int64 id)
{
String cmd = "insert into 家庭成员信息 values(";
insertID2 = id;
cmd = cmd + String.Format("'{0}','','{1}','{2}','{3}','','','','4','')", id,tbMemberName.Text,tbMemberSex.Text,tbRelation.Text,tbMemberTel.Text);
//MessageBox.Show(cmd);
return cmd;
}
private void button10_Click(object sender, EventArgs e)
{
Int64 id=(Int64)dataGridView2.Rows[selectedIndex2].Cells["住户编号"].Value;
searchTenementInfo(id);
}
private void button5_Click(object sender, EventArgs e)
{
Int64 id=(Int64)dataGridView.Rows[selectedIndex].Cells["住户编号"].Value;
searchMemberInfo(id);
}
private void TenementPanel_Load(object sender, EventArgs e)
{
}
private void tbOwnerName_TextChanged(object sender, EventArgs e)
{
}
private void label10_Click(object sender, EventArgs e)
{
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -