【图书管理模块的设计与实现】【4】

  • 关键技术及实现过程

访问数据库,在用户登录、用户信息管理以及对图书信息进行增删改查的处理操作上,使用LINQ链接数据库并显示在datagridview中的操作。

登录界面,点击登录按钮出发click事件,检验验证通过,实现窗体跳转到主界面。

进入图书信息管理操作,使用LINQ链接数据库并处理数据的实现:

  • 添加LINQ to SQL组件;
  • 创建对象模型:定义若干个映射数据库表的类,并使用元数据属性声明它为实体类;
  • 应用对象模型:先创建DataContext类的实例,再创建并执行LINQ查询,实现具体的

数据的查询、增加、更新和删除。

导出Excel,引入了Microsoft.Office.Interop.Excel程序集,添加一个ExportDGVToExcel类,创建Excel对象并获取,定义存放的文件名、文件类型等,进行自定义设置获得的sheet1,创建缓存数据,获取数据,验证DataGridView单元格中的类型,如果是string或是DataTime类型,则在放入缓存时在该内容前加入“”;将datagridview中的数据写入Excel中。

图书信息的读取和写入二进制文件,创建了FileStream文件流对象,并基于该对象创建了BinaryWriter对象,调用BinaryWriter对象的写入文件内容;继续创建BinaryReader对象,调用BinaryReader对象的读取文件内容,最后显示到listbox中。

使用Random()方法随机产生数字验证码进行登录验证操作;使用try catch方法实现用户输入的合法性检验;在主界面中,添加了menuStrip、toolStrip、statusStrip三种菜单工具栏,使用Timer组件实现时间的显示,屏幕保护程序;使用imagelist实现图书图片的切换等等。

主要程序代码

  • 访问数据库代码


//修改图书信息private void btnmodify_Click(object sender, EventArgs e){BookDataContext db = new BookDataContext();//实例化LINQ类对象var results = from r in db.bookwhere r.book_id == bookid.Text.Trim()select r;//根据ID查询得到数据集if (results != null){foreach (book r in results)//遍历数据集{r.book_name = bookname.Text.Trim();//将对应的数据重新赋值到r对象中r.author = bookaut.Text.Trim();r.publisher = bookpub.Text.Trim();r.date = Convert.ToDateTime(bookdate.Text.Trim());r.price = Convert.ToDecimal(bookpri.Text.Trim());r.book_class = bookclass.Text.Trim();r.num = Convert.ToInt32(booknum.Text.Trim());}db.SubmitChanges();//提交修改到数据库MessageBox.Show("修改成功");Bind();btnclear_Click(sender, e);//清空 调用重置}}
  • 文件读写代码
private void btnSave_Click(object sender, EventArgs e)
{FileStream fs = new FileStream(@"d:\data\bookinfo.dat", FileMode.Append, FileAccess.Write);BinaryWriter bw = new BinaryWriter(fs);//创建二进制文件流写文件bw.Write(Int32.Parse(bookid.Text));bw.Write(bookname.Text);//写入姓名bw.Write(bookaut.Text);bw.Write(bookpub.Text);bw.Write(bookdate.Text);bw.Write(bookpri.Text);bw.Write(bookclass.Text);bw.Write(booknum.Text);           fs.Close();bw.Close();}
private void btnShow_Click(object sender, EventArgs e){lstShow.Items.Clear();//清除重置lstShow.Items.Add("书号\t书名\t作者\t出版社\t出版日期\t\t定价\t图书分类\t库存数量");FileStream fs = new FileStream(@"d:\data\bookinfo.dat", FileMode.Open, FileAccess.Read);BinaryReader br = new BinaryReader(fs);fs.Position = 0;while (fs.Position != fs.Length)//逐条读取对应项的数据{int book_id = br.ReadInt32();string book_name = br.ReadString();string author = br.ReadString();string publisher = br.ReadString();string date = br.ReadString();string price = br.ReadString();string book_class = br.ReadString();string num = br.ReadString();string result = string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}", book_id, book_name, author, publisher, date, price, book_class, num);//占位符放进三个值lstShow.Items.Add(result);}br.Close();fs.Close();}
  • 导入Excel代码

    private void ExportExcels(string fileName, DataGridView myDGV){string saveFileName = "";SaveFileDialog saveDialog = new SaveFileDialog();saveDialog.DefaultExt = "xls";saveDialog.Filter = "Excel文件|*.xls";saveDialog.FileName = fileName;saveDialog.ShowDialog();saveFileName = saveDialog.FileName;if (saveFileName.IndexOf(":") < 0) return; //被点了取消Microsoft.Office.Interop.Excel.Application xlApp =
    new Microsoft.Office.Interop.Excel.Application();if (xlApp == null)//判断datagridview中内容是否为空{MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");return;}Microsoft.Office.Interop.Excel.Workbooks workbooks = xlApp.Workbooks;Microsoft.Office.Interop.Excel.Workbook workbook =
    workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);Microsoft.Office.Interop.Excel.Worksheet worksheet =(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];//取得sheet1//写入标题for (int i = 0; i < myDGV.ColumnCount; i++){worksheet.Cells[1, i + 1] = myDGV.Columns[i].HeaderText;}//写入数值for (int r = 0; r < myDGV.Rows.Count; r++){for (int i = 0; i < myDGV.ColumnCount; i++){worksheet.Cells[r + 2, i + 1] = myDGV.Rows[r].Cells[i].Value;}System.Windows.Forms.Application.DoEvents();}worksheet.Columns.EntireColumn.AutoFit();//列宽自适应if (saveFileName != ""){try{workbook.Saved = true;workbook.SaveCopyAs(saveFileName);}catch (Exception ex){MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);}}xlApp.Quit();GC.Collect();//强行销毁MessageBox.Show("文件: " + fileName + ".xls 保存成功", "信息提示", MessageBoxButtons.OK, MessageBoxIcon.Information);


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部