winform - 读取数据库
时间:2021-07-01 10:21:17
帮助过:2人阅读
using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Drawing;
5 using System.Linq;
6 using System.Text;
7 using System.Threading.Tasks;
8 using System.Windows.Forms;
9
10 using System.Data;
// 引用【AD0.NET】命名空间
11 using System.Data.SqlClient;
// sql
12
13 namespace DataBase
14 {
15 public partial class Form1 : Form
16 {
17 public Form1()
18 {
19 InitializeComponent();
20 }
21
22 // 窗体载入
23 private void Form1_Load(
object sender, EventArgs e)
24 {
25 //编号, 品名, 规格, 材质, 库存, 价格, 仓库
26 this.lstviewRecordData.Items.Clear();
27 this.lstviewRecordData.View = View.Details;
// lstviewRecordData视图样式: 详细信息
28 this.lstviewRecordData.GridLines =
true;
// 网格线
29 this.lstviewRecordData.CheckBoxes =
true;
// 复选框
30 ColumnHeader ch =
new ColumnHeader();
31 ch.Text =
"编号";
// 标题
32 ch.TextAlign = HorizontalAlignment.Center;
// 居中
33 ch.Width =
50;
// 宽度
34 this.lstviewRecordData.Columns.Add(ch);
// 添加列头
35 this.lstviewRecordData.Columns.Add(
"品名",
80, HorizontalAlignment.Center);
36 this.lstviewRecordData.Columns.Add(
"规格",
180, HorizontalAlignment.Center);
37 this.lstviewRecordData.Columns.Add(
"材质",
80, HorizontalAlignment.Center);
38 this.lstviewRecordData.Columns.Add(
"库存",
100, HorizontalAlignment.Center);
39 this.lstviewRecordData.Columns.Add(
"价格",
100, HorizontalAlignment.Center);
40 this.lstviewRecordData.Columns.Add(
"仓库",
100, HorizontalAlignment.Center);
41 this.lstviewRecordData.FullRowSelect =
true;
42
43 }
44 private void btnReadDataBase_Click(
object sender, EventArgs e)
45 {
46 lstviewRecordData.Items.Clear();
47 // 绑定数据库
48 BindDataBase();
49 }
50
51 /// <summary> 绑定数据库
52 ///
53 /// </summary>
54 private void BindDataBase()
55 {
56 // 连接指定数据库
57 SqlConnection conn =
new SqlConnection();
58
59 /***********************************************************************
60 * 使用字符串声明连接所需要的信息:
61 * 1. 服务器;
62 * 2. 数据库 ;
63 * 3. 验证:
64 * 3.1 Windows本地验证: Integrated Security = true;
65 * 3.2 SqlServer验证: user id = 登录名; password = 密码
66 ***********************************************************************/
67 conn.ConnectionString =
"Server = 127.0.0.1; DataBase = DuanLaoYeDataBase;"+
68 " user id = DuanLaoYe; password = 123456";
69 try
70 {
71 // 打开连接
72 conn.Open();
73 //MessageBox.Show(conn.State.ToString()); // 测试conn的状态,打开或关闭
74
75
76 // 构造数据库命令操作对象,用于执行T-SQL语句
77 SqlCommand cmd =
new SqlCommand();
78 // 执行操作的T-SQL语句或者存储过程
79 cmd.CommandText =
"select * from Steel";
80 // 执行操作所需要的连接
81 cmd.Connection =
conn;
82
83
84 //声明结果集对象 , 用于检索数据 ; 结果集的来自cmd的ExecuteReader()方法
85 SqlDataReader dr =
cmd.ExecuteReader();
86 // 遍历dr数据 , 判断有无数据可读
87 if (dr.HasRows)
88 {
89 // 开始更新数据, 挂起lstviewRecordData的UI绘制
90 this.lstviewRecordData.BeginUpdate();
91 while (dr.Read())
// 循环读取所有数据
92 {
93 ListViewItem lvi =
new ListViewItem();
94 lvi.Text = dr[
0].ToString();
95 for (
int i =
1; i <=
6; ++
i )
96 {
97 lvi.SubItems.Add(dr[i].ToString().Trim());
98 }
99 this.lstviewRecordData.Items.Add(lvi);
100 }
101 // 结束更新数据, 开始绘制UI(UI一次性绘制)
102 this.lstviewRecordData.EndUpdate();
103 }
104 else
105 {
106 MessageBox.Show(
"结果集无数据!");
107 }
108 }
109 catch (SqlException ex)
110 {
111 MessageBox.Show(
"数据库操作遇到异常 : " +
ex.Message);
112 }
113 finally
114 {
115 // 判断当前的conn连接状态, 如果未关闭
116 if (conn.State !=
ConnectionState.Closed)
117 {
118 // 则关闭连接
119 conn.Close();
120 }
121 }
122 }
123
124 private void 删除ToolStripMenuItem_Click(
object sender, EventArgs e)
125 {
126 if (DialogResult.Yes == MessageBox.Show(
"确定删除当前所有选中数据?",
"提示", MessageBoxButtons.YesNo))
127 {
128 this.lstviewRecordData.BeginUpdate();
129 // 遍历选中项
130 foreach (ListViewItem lvi
in lstviewRecordData.SelectedItems)
131 {
132 // 按索引删除选中项
133 //this.lstviewRecordData.Items.RemoveAt(lvi.Index);
134
135 // 按项删除选中项
136 this.lstviewRecordData.Items.Remove(lvi);
137 }
138 this.lstviewRecordData.EndUpdate();
139 }
140 }
141 }
142 }
winform - 读取数据库
标签: