15小項目 連接數(shù)據庫+讀取信息
1.新建項目:

2.頭文件:
using System;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Data;
namespace WindowsFormsApp1
{
??? public partial class Form1 : Form
??? {
??????? public Form1()
??????? {
??????????? InitializeComponent();
??????????? comboBox1.SelectedIndex = 0;// 默認選中第一項
??????????? comboBox2.SelectedIndex = 0;
??????????? //必須先創(chuàng)建表頭
??????????? listView1.Columns.Add("員工號", listView1.Width / 2 - 1, HorizontalAlignment.Left);
??????????? listView1.Columns.Add("員工姓名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
??????? }
??????? private void button1_Click(object sender, EventArgs e)
??????? {
??????????? string connStr = "Data Source=DESKTOP-CHKF0KA;Initial Catalog=temp;Integrated Security=True";//使用windows連接
??????????? //DESKTOP-CHKF0KA????? 連接的數(shù)據庫服務器名
??????????? //temp?? 數(shù)據庫名字
??????????? SqlConnection conn = new SqlConnection(connStr);
??????????? conn.Open();
??????????? if (conn.State == ConnectionState.Open)
??????????? {
??????????????? //MessageBox.Show("數(shù)據庫連接成功!");//winform中可以用
??????????????? Console.WriteLine("連接成功");//控制臺用
??????????? }
??????????? string t1 = comboBox1.Text;//EmpNo
??????????? string sql = String.Format("select * from works w join employee e on w.EmpNo = e.EmpNo " +
??????????????? "join company c on w.CmpNo = c.CmpNo " +
??????????????? "where e.EmpNo = '{0}'",t1);//EmpName = '{0}' and t1,
??????????? SqlCommand cmd = new SqlCommand(sql, conn);
??????????? listView1.Items.Clear();
??????????? try
??????????? {
??????????????? SqlDataReader re = cmd.ExecuteReader();//.ExecuteNonQuery();
??????????????? Console.WriteLine("修改成功");
??????????????? if (!re.HasRows)//判斷是否為空
??????????????? {
??????????????????? comboBox1.Text = "不存在該員工";
??????????????????? return;
??????????????? }
??????????????? //re.Read();
??????????????? //textBox1.Text = re["EmpName"].ToString();
??????????????? this.listView1.BeginUpdate();?? //數(shù)據更新,UI暫時掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
??????????????? for (int i = 0; re.Read(); i++)?? //添加10行數(shù)據
??????????????? {
??????????????????? ListViewItem lvi = new ListViewItem();//放入表中
??????????????????? lvi.Text = re["EmpNo"].ToString();
??????????????????? lvi.SubItems.Add(re["EmpName"].ToString());
??????????????????? lvi.SubItems.Add(re["EmpSex"].ToString());
??????????????????? lvi.SubItems.Add(re["EmpAge"].ToString());
??????????????????? this.listView1.Items.Add(lvi);
??????????????????? //listView1.Text += re["EmpNo"].ToString();
??????????????? }
????????????? this.listView1.EndUpdate();? //結束數(shù)據處理,UI界面一次性繪制。
??????????? }
??????????? catch (SqlException ae)
??????????? {
??????????????? Console.WriteLine("修改失敗");
??????????????? Console.WriteLine(ae.Message);
??????????????? MessageBox.Show("error");
??????????? }
??????????? finally
??????????? {
????????????? conn.Close();//對數(shù)據庫操作完成后,需要關閉數(shù)據庫,釋放內存
??????????? }
????? }
???