6、图书管理界面
页面展示
控件简介
用到了之前提过的PictureBox 放照片,使用Panel将页面分成两部分,下拉列表ListBox,用来显示数据表格的DataGridView ,与数据库进行绑定,显示数据库内容。常规的不介绍了。小建议是将需要添加功能的控件重新命名,方便后序调用。
功能介绍及相应代码
连接数据库,@" "引号中是数据库属性中连接字符串的内容
SqlConnection Con = new SqlConnection(@"")
数据库内容填充函数,填充到DataGridView 中
private void populate()
{
Con.Open();
string query = "select * from BookTb1";
SqlDataAdapter adapter = new SqlDataAdapter(query,Con);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
var ds = new DataSet();
adapter.Fill(ds);
BookGDV.DataSource = ds.Tables[0];
Con.Close();
}
清空函数
private void Reset()
{
BTitleTB.Clear();
BAuthorTB.Clear();
BCatCB.SelectedIndex = -1;
BQtyTB.Clear();
BPriceTB.Clear();
BTitleTB.Focus();
}
保存功能,如果文本框有一个为空,报警信息不全,否则将文本框内容依次存入数据库表BookTb1 中
private void SaveBtn_Click(object sender, EventArgs e)
{
if (BTitleTB.Text == "" || BAuthorTB.Text == "" || BQtyTB.Text == "" || BPriceTB.Text == "" || BCatCB.SelectedIndex == -1)
{
MessageBox.Show("信息不全!!");
}
else
{
// 将插入数据库的功能写入try-catch中,报错用MessageBox显示出来
try
{
Con.Open();
//sql语句
string query = "insert into BookTb1 values('"+BTitleTB.Text+"','"+BAuthorTB.Text+"', '"+BCatCB.SelectedItem.ToString()+"', '"+BQtyTB.Text+"','"+BPriceTB.Text+"')";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("书籍信息保存成功!");
Con.Close();
populate();
Reset();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Reset();
}
}
}
根据DataGridView 上面的下拉列表选定类型来展示书籍
private void BListCB_SelectionChangeCommitted(object sender, EventArgs e)
{
Con.Open();
string query = "select * from BookTb1 where Bcat = '" + BListCB.SelectedItem.ToString() + "'";
SqlDataAdapter adapter = new SqlDataAdapter(query, Con);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
var ds = new DataSet();
adapter.Fill(ds);
BookGDV.DataSource = ds.Tables[0];
Con.Close();
}
重置功能
private void ResetBtn_Click(object sender, EventArgs e)
{
Reset();
BListCB.SelectedIndex = -1;
}
更新功能,刷新一下填充函数
private void RenewBtn_Click(object sender, EventArgs e)
{
populate();
BListCB.SelectedIndex = -1;
}
点击框内信息,信息输入到上边文本框中,进而实现删除和编辑功能
int key = 0;
private void BookGDV_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//将表中按列依次显示在对应文本框中
BTitleTB.Text = BookGDV.SelectedRows[0].Cells[1].Value.ToString();
BAuthorTB.Text = BookGDV.SelectedRows[0].Cells[2].Value.ToString();
BCatCB.SelectedItem = BookGDV.SelectedRows[0].Cells[3].Value.ToString();
BQtyTB.Text = BookGDV.SelectedRows[0].Cells[4].Value.ToString();
BPriceTB.Text = BookGDV.SelectedRows[0].Cells[5].Value.ToString();
// 将显示在文本框中的行号拿出来
if (BTitleTB.Text == "")
{
key = 0;
}
else
{
key = Convert.ToInt32(BookGDV.SelectedRows[0].Cells[0].Value.ToString());
}
}
利用行号实现删除功能
private void DeleteBtn_Click(object sender, EventArgs e)
{
if (key == 0)
{
MessageBox.Show("信息不全!!");
}
else
{
try
{
Con.Open();
string query = "delete from BookTb1 where BId = "+key+"";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("书籍信息删除成功!");
Con.Close();
// 删除完更新一下列表,清空文本框
populate();
Reset();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Reset();
}
}
}
编辑功能
private void EditBtn_Click(object sender, EventArgs e)
{
if (BTitleTB.Text == "" || BAuthorTB.Text == "" || BQtyTB.Text == "" || BPriceTB.Text == "" || BCatCB.SelectedIndex == -1)
{
MessageBox.Show("信息不全!!");
}
else
{
try
{
Con.Open();
// 修改数据库sql语句
string query = "update BookTb1 set BTitle = '" + BTitleTB.Text + "', BAuthor = '"+BAuthorTB.Text+"', Bcat = '"+BCatCB.SelectedItem.ToString()+"', BQty = '"+BQtyTB.Text+"', BPrice = '"+BPriceTB.Text+"' where BId = "+key+" ";
SqlCommand cmd = new SqlCommand(query, Con);
cmd.ExecuteNonQuery();
MessageBox.Show("书籍信息编辑成功!");
Con.Close();
//修改完更新一下列表,清空文本框
populate();
Reset();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Reset();
}
}
}
右上角X退出功能实现
private void label8_Click(object sender, EventArgs e)
{
Application.Exit();
}
左边跳转不同后台功能实现,这个功能可以所有页面实现后再加
// 跳转到用户管理页面
private void label7_Click(object sender, EventArgs e)
{
Users obj = new Users();
obj.Show();
this.Hide();
}
// 跳转到账户管理页面
private void label9_Click(object sender, EventArgs e)
{
DashBoard obj = new DashBoard();
obj.Show();
this.Hide();
}
// 退出 到登录页面
private void label10_Click(object sender, EventArgs e)
{
login log = new login();
log.Show();
this.Hide();
}
感谢您的阅读,欢迎讨论批评!