15年cs項(xiàng)目全部代碼
new

原文章:https://blog.csdn.net/yongh701/article/details/50467129
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?




using System.Threading.Tasks;
using System;
using System.Windows.Forms;
using System.Data.SqlClient;// 不加會(huì)出現(xiàn) 未能找到類型或命名空間sqlConnection
using System.Data;// 不加會(huì)出現(xiàn) 當(dāng)前上下文不存在名稱connectionstate
using System.Diagnostics;
namespace WindowsFormsApp1
{
? ?public partial class Form1 : Form
? ?{
? ? ? ?public Form1()
? ? ? ?{
? ? ? ? ? ?
? ? ? ? ? ?InitializeComponent();
? ? ? ? ? ?// 默認(rèn)選中第一項(xiàng)
? ? ? ? ? ?comboBox1.Text = "請(qǐng)選擇員工號(hào)";
? ? ? ? ? ?comboBox1.SelectedIndex = 0;
? ? ? ? ? ?comboBox2.Text = "請(qǐng)選擇員工名字";
? ? ? ? ? ?comboBox2.SelectedIndex = 0;
? ? ? ? ? ?//必須先創(chuàng)建表頭
? ? ? ? ? ?listView1.Columns.Add("員工號(hào)", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView1.Columns.Add("員工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView1.Columns.Add("性別", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView1.Columns.Add("年齡", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView2.Columns.Add("員工號(hào)", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView2.Columns.Add("員工姓名", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView2.Columns.Add("性別", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView2.Columns.Add("年齡", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView2.Columns.Add("總工資", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView3.Columns.Add("員工姓名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
? ? ? ? ? ?listView3.Columns.Add("公司名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
? ? ? ?}
? ? ? ?private void Form1_Load(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void listView1_SelectedIndexChanged(object sender, EventArgs e)
? ? ? ?{
? ? ? ? ? ?//listView1.Items.Clear(); ? ? ? ?//清空
? ? ? ? ? ?//ListViewItem item1 = new ListViewItem();
? ? ? ? ? ?//listView1.Columns.Add("員工號(hào)", listView1.Width / 4 - 1,HorizontalAlignment.Left);
? ? ? ?}
? ? ? ?private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
? ? ? ?{
? ? ? ? ? ?//string view = (sender as ComboBox).SelectedItem as string;
? ? ? ? ? ?//從字符串中還原枚舉值
? ? ? ? ? ?//View v = (View)Enum.Parse(typeof(View), view);
? ? ? ? ? ?//listView1.View = v; ? ? //設(shè)置ListView的呈現(xiàn)方式
? ? ? ?}
? ? ? ?private void button1_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? ? ? ?"Initial Catalog=temp;Integrated Security=True";
? ? ? ? ? ?//DESKTOP-CHKF0KA ? ? ?連接的數(shù)據(jù)庫(kù)服務(wù)器名
? ? ? ? ? ?//CSDN予我心安A3的數(shù)據(jù)庫(kù) ? 連接的數(shù)據(jù)庫(kù)名
? ? ? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ? ? ?//SqlConnection 變量名 = new SqlConnection(參數(shù)字符串或存儲(chǔ)了參數(shù)字符串的變量);
? ? ? ? ? ?//測(cè)試數(shù)據(jù)
? ? ? ? ? ?conn.Open();
? ? ? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?//MessageBox.Show("數(shù)據(jù)庫(kù)連接成功!");//winform中可以用
? ? ? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ? ? ?}
? ? ? ? ? ?//conn.Close();//關(guān)閉數(shù)據(jù)庫(kù)鏈接,用完就關(guān),別掛著
? ? ? ? ? ?//試試根據(jù)輸入查詢數(shù)據(jù) + 兩個(gè)form傳遞數(shù)據(jù)?
? ? ? ? ? ?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();
? ? ? ? ? ? ? ?//1.使用ExecuteReader()操作數(shù)據(jù)庫(kù) ?https://www.jianshu.com/p/7b35cbc7df75
? ? ? ? ? ? ? ?//2.使用ExecuteNonQuery()操作數(shù)據(jù)庫(kù)
? ? ? ? ? ? ? ?//3.使用ExecuteScalar()操作數(shù)據(jù)庫(kù)
? ? ? ? ? ? ? ?//4.使用DataSet數(shù)據(jù)集插入記錄,更新數(shù)據(jù)
? ? ? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?comboBox1.Text = "不存在該員工";
? ? ? ? ? ? ? ? ? ?return;
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?//re.Read();
? ? ? ? ? ? ? ?//textBox1.Text = re["EmpName"].ToString();
? ? ? ? ? ? ? ?this.listView1.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ? ? ?//this.listView1.Columns.Add("查詢結(jié)果", 120, HorizontalAlignment.Left); //一步添加
? ? ? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?ListViewItem lvi = new ListViewItem();
? ? ? ? ? ? ? ? ? // **方法4(最好理解) * *
// ? ? ? ? ? ? ? ? ? ?ListViewItem LVI = new ListViewItem("11"); ? ? ?//11是String型,為第1列內(nèi)容
// ? ? ? ? ? ? ? ? ? ?LVI.SubItems.Add("22");//第二列
// ? ? ? ? ? ? ? ? ? ?LVI.SubItems.Add("33");
// ? ? ? ? ? ? ? ? ? ?listView1.Items.Add(LVI);
? ? ? ? ? ? ? ? ? ?//lvi.ImageIndex = i; ? ? //通過(guò)與imageList綁定,顯示imageList中第i項(xiàng)圖標(biāo)
? ? ? ? ? ? ? ? ? ?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(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ? ? ?}
? ? ? ? ? ?catch (SqlException ae)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ? ? ?MessageBox.Show("error");
? ? ? ? ? ?}
? ? ? ? ? ?finally
? ? ? ? ? ?{
? ? ? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?private void tabPage1_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void label1_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void label2_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void textBox1_TextChanged(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void button2_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ? ? ?conn.Open();
? ? ? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ? ? ?}
? ? ? ? ? ?string t2 = comboBox2.Text;//選項(xiàng)框本來(lái)就可以輸入文本
? ? ? ? ? ?//string t2 = textBox1.Text;//不用文本框
? ? ? ? ? ?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.EmpName = '{0}'", t2);//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;
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?this.listView1.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?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);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?this.listView1.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ? ? ?}
? ? ? ? ? ?catch (SqlException ae)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ? ? ?MessageBox.Show("error");
? ? ? ? ? ?}
? ? ? ? ? ?finally
? ? ? ? ? ?{
? ? ? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?private void button3_Click(object sender, EventArgs e)
? ? ? ?{//統(tǒng)計(jì)40歲以上員工的總工資,由大到小排列
? ? ? ? //控制 page2
? ? ? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ? ? ?conn.Open();
? ? ? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ? ? ?}
? ? ? ? ? ?string sql = String.Format("select e.EmpNo,e.EmpAge,e.EmpName,e.EmpSex,sum(Salary) as '總工資' " +
? ? ? ? ? ? ? ?"from employee e join works as w on e.EmpNo = w.EmpNo " +
? ? ? ? ? ? ? ?"where e.EmpAge >= 40 " +
? ? ? ? ? ? ? ?"group by e.EmpNo, e.EmpAge, e.EmpName, e.EmpSex " +
? ? ? ? ? ? ? ?"order by sum(salary) desc; ");
? ? ? ? ? ?SqlCommand cmd = new SqlCommand(sql, conn);
? ? ? ? ? ?listView2.Items.Clear();
? ? ? ? ? ?try
? ? ? ? ? ?{
? ? ? ? ? ? ? ?SqlDataReader re = cmd.ExecuteReader();//.ExecuteNonQuery();
? ? ? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ? ? ?{ MessageBox.Show("結(jié)果為空"); return; }
? ? ? ? ? ? ? ?this.listView2.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?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());
? ? ? ? ? ? ? ? ? ?lvi.SubItems.Add(re["總工資"].ToString());
? ? ? ? ? ? ? ? ? ?this.listView2.Items.Add(lvi);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?this.listView2.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ? ? ?}
? ? ? ? ? ?catch (SqlException ae)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ? ? ?MessageBox.Show("error");
? ? ? ? ? ?}
? ? ? ? ? ?finally
? ? ? ? ? ?{
? ? ? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?private void label3_Click(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void listView2_SelectedIndexChanged(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ? ? ?private void button4_Click(object sender, EventArgs e)
? ? ? ?{//查詢至少具有兩份工作的員工姓名與公司名
// ? ? ? ? ? ?select e.EmpName,c.CmpName from employee as e join works as w on e.EmpNo = w.EmpNo join company as c on w.CmpNo = c.CmpNo where e.EmpNo in (select e.EmpNo
//from employee as e join works as w on e.EmpNo = w.EmpNo
// ? ? ? ? ? ?group by e.EmpNo
// ? ? ? ? ? ?having count(e.EmpName) >= 2
? ? ? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ? ? ?conn.Open();
? ? ? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ? ? ?}
//select e.EmpName,c.CmpName
//from employee as e join works as w on e.EmpNo = w.EmpNo join company as c on w.CmpNo = c.CmpNo
//where e.EmpNo in (
//select e.EmpNo
//from employee as e join works as w on e.EmpNo = w.EmpNo
//group by e.EmpNo
//having count(e.EmpName) >= 2
//)
? ? ? ? ? ?string sql = String.Format(
? ? ? ? ? ? ? ?"select e.EmpName,c.CmpName " +
? ? ? ? ? ? ? ?"from employee as e " +
? ? ? ? ? ? ? ?"join works as w on e.EmpNo = w.EmpNo join company as c on w.CmpNo = c.CmpNo " +
? ? ? ? ? ? ? ?"where e.EmpNo in (" +
? ? ? ? ? ? ? ?"select e.EmpNo " +
? ? ? ? ? ? ? ?"from employee as e " +
? ? ? ? ? ? ? ?"join works as w on e.EmpNo = w.EmpNo " +
? ? ? ? ? ? ? ?"group by e.EmpNo " +
? ? ? ? ? ? ? ?"having count(e.EmpName) >= 2" +
? ? ? ? ? ? ? ?")");
? ? ? ? ? ?SqlCommand cmd = new SqlCommand(sql, conn);
? ? ? ? ? ?listView3.Items.Clear();
? ? ? ? ? ?try
? ? ? ? ? ?{
? ? ? ? ? ? ? ?SqlDataReader re = cmd.ExecuteReader();//.ExecuteNonQuery();
? ? ? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ? ? ?{ MessageBox.Show("結(jié)果為空"); return; }
? ? ? ? ? ? ? ?this.listView3.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ? ?ListViewItem lvi = new ListViewItem();
? ? ? ? ? ? ? ? ? ?lvi.Text = re["EmpName"].ToString();
? ? ? ? ? ? ? ? ? ?lvi.SubItems.Add(re["CmpName"].ToString());
? ? ? ? ? ? ? ? ? ?this.listView3.Items.Add(lvi);
? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?this.listView3.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ? ? ?}
? ? ? ? ? ?catch (SqlException ae)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ? ? ?MessageBox.Show("sql error");
? ? ? ? ? ?}
? ? ? ? ? ?finally
? ? ? ? ? ?{
? ? ? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ? ? ?}
? ? ? ?}
? ? ? ?private void textBox1_TextChanged_1(object sender, EventArgs e)
? ? ? ?{
? ? ? ?}
? ?}
}

原文章:https://blog.csdn.net/yongh701/article/details/50467129
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Text; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?


using System.Threading.Tasks;
using System;
using System.Windows.Forms;
using System.Data.SqlClient;// 不加會(huì)出現(xiàn) 未能找到類型或命名空間sqlConnection
using System.Data;// 不加會(huì)出現(xiàn) 當(dāng)前上下文不存在名稱connectionstate
using System.Diagnostics;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
? ? ? ?InitializeComponent();
? ? ? ?// 默認(rèn)選中第一項(xiàng)
? ? ? ?comboBox1.Text = "請(qǐng)選擇員工號(hào)";
? ? ? ?comboBox1.SelectedIndex = 0;
? ? ? ?comboBox2.Text = "請(qǐng)選擇員工名字";
? ? ? ?comboBox2.SelectedIndex = 0;
? ? ? ?//必須先創(chuàng)建表頭
? ? ? ?listView1.Columns.Add("員工號(hào)", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ?listView1.Columns.Add("員工姓名", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ?listView1.Columns.Add("性別", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ?listView1.Columns.Add("年齡", listView1.Width / 4 - 1, HorizontalAlignment.Left);
? ? ? ?listView2.Columns.Add("員工號(hào)", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ?listView2.Columns.Add("員工姓名", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ?listView2.Columns.Add("性別", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ?listView2.Columns.Add("年齡", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ?listView2.Columns.Add("總工資", listView1.Width / 5 - 1, HorizontalAlignment.Left);
? ? ? ?listView3.Columns.Add("員工姓名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
? ? ? ?listView3.Columns.Add("公司名", listView1.Width / 2 - 1, HorizontalAlignment.Left);
? ?}
? ?private void Form1_Load(object sender, EventArgs e)
? ?{
? ?}
? ?private void listView1_SelectedIndexChanged(object sender, EventArgs e)
? ?{
? ? ? ?//listView1.Items.Clear(); ? ? ? ?//清空
? ? ? ?//ListViewItem item1 = new ListViewItem();
? ? ? ?//listView1.Columns.Add("員工號(hào)", listView1.Width / 4 - 1,HorizontalAlignment.Left);
? ?}
? ?private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
? ?{
? ? ? ?//string view = (sender as ComboBox).SelectedItem as string;
? ? ? ?//從字符串中還原枚舉值
? ? ? ?//View v = (View)Enum.Parse(typeof(View), view);
? ? ? ?//listView1.View = v; ? ? //設(shè)置ListView的呈現(xiàn)方式
? ?}
? ?private void button1_Click(object sender, EventArgs e)
? ?{
? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? ?"Initial Catalog=temp;Integrated Security=True";
? ? ? ?//DESKTOP-CHKF0KA ? ? ?連接的數(shù)據(jù)庫(kù)服務(wù)器名
? ? ? ?//CSDN予我心安A3的數(shù)據(jù)庫(kù) ? 連接的數(shù)據(jù)庫(kù)名
? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ?//SqlConnection 變量名 = new SqlConnection(參數(shù)字符串或存儲(chǔ)了參數(shù)字符串的變量);
? ? ? ?//測(cè)試數(shù)據(jù)
? ? ? ?conn.Open();
? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ?{
? ? ? ? ? ?//MessageBox.Show("數(shù)據(jù)庫(kù)連接成功!");//winform中可以用
? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ?}
? ? ? ?//conn.Close();//關(guān)閉數(shù)據(jù)庫(kù)鏈接,用完就關(guān),別掛著
? ? ? ?//試試根據(jù)輸入查詢數(shù)據(jù) + 兩個(gè)form傳遞數(shù)據(jù)?
? ? ? ?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();
? ? ? ? ? ?//1.使用ExecuteReader()操作數(shù)據(jù)庫(kù) ?https://www.jianshu.com/p/7b35cbc7df75
? ? ? ? ? ?//2.使用ExecuteNonQuery()操作數(shù)據(jù)庫(kù)
? ? ? ? ? ?//3.使用ExecuteScalar()操作數(shù)據(jù)庫(kù)
? ? ? ? ? ?//4.使用DataSet數(shù)據(jù)集插入記錄,更新數(shù)據(jù)
? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ?{
? ? ? ? ? ? ? ?comboBox1.Text = "不存在該員工";
? ? ? ? ? ? ? ?return;
? ? ? ? ? ?}
? ? ? ? ? ?//re.Read();
? ? ? ? ? ?//textBox1.Text = re["EmpName"].ToString();
? ? ? ? ? ?this.listView1.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ?//this.listView1.Columns.Add("查詢結(jié)果", 120, HorizontalAlignment.Left); //一步添加
? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?ListViewItem lvi = new ListViewItem();
? ? ? ? ? ? ? // **方法4(最好理解) * *
// ? ? ? ? ? ? ? ? ? ?ListViewItem LVI = new ListViewItem(“11”); ? ? ?//11是String型,為第1列內(nèi)容
// ? ? ? ? ? ? ? ? ? ?LVI.SubItems.Add(“22”);//第二列
// ? ? ? ? ? ? ? ? ? ?LVI.SubItems.Add(“33”);
// ? ? ? ? ? ? ? ? ? ?listView1.Items.Add(LVI);
? ? ? ? ? ? ? ?//lvi.ImageIndex = i; ? ? //通過(guò)與imageList綁定,顯示imageList中第i項(xiàng)圖標(biāo)
? ? ? ? ? ? ? ?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(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ?}
? ? ? ?catch (SqlException ae)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ?MessageBox.Show("error");
? ? ? ?}
? ? ? ?finally
? ? ? ?{
? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ?}
? ?}
? ?private void tabPage1_Click(object sender, EventArgs e)
? ?{
? ?}
? ?private void label1_Click(object sender, EventArgs e)
? ?{
? ?}
? ?private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
? ?{
? ?}
? ?private void label2_Click(object sender, EventArgs e)
? ?{
? ?}
? ?private void textBox1_TextChanged(object sender, EventArgs e)
? ?{
? ?}
? ?private void button2_Click(object sender, EventArgs e)
? ?{
? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ?conn.Open();
? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ?}
? ? ? ?string t2 = comboBox2.Text;//選項(xiàng)框本來(lái)就可以輸入文本
? ? ? ?//string t2 = textBox1.Text;//不用文本框
? ? ? ?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.EmpName = '{0}'", t2);//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;
? ? ? ? ? ?}
? ? ? ? ? ?this.listView1.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?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);
? ? ? ? ? ?}
? ? ? ? ? ?this.listView1.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ?}
? ? ? ?catch (SqlException ae)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ?MessageBox.Show("error");
? ? ? ?}
? ? ? ?finally
? ? ? ?{
? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ?}
? ?}
? ?private void button3_Click(object sender, EventArgs e)
? ?{//統(tǒng)計(jì)40歲以上員工的總工資,由大到小排列
? ? //控制 page2
? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ?conn.Open();
? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ?}
? ? ? ?string sql = String.Format("select e.EmpNo,e.EmpAge,e.EmpName,e.EmpSex,sum(Salary) as '總工資' " +
? ? ? ? ? ?"from employee e join works as w on e.EmpNo = w.EmpNo " +
? ? ? ? ? ?"where e.EmpAge >= 40 " +
? ? ? ? ? ?"group by e.EmpNo, e.EmpAge, e.EmpName, e.EmpSex " +
? ? ? ? ? ?"order by sum(salary) desc; ");
? ? ? ?SqlCommand cmd = new SqlCommand(sql, conn);
? ? ? ?listView2.Items.Clear();
? ? ? ?try
? ? ? ?{
? ? ? ? ? ?SqlDataReader re = cmd.ExecuteReader();//.ExecuteNonQuery();
? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ?{ MessageBox.Show("結(jié)果為空"); return; }
? ? ? ? ? ?this.listView2.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?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());
? ? ? ? ? ? ? ?lvi.SubItems.Add(re["總工資"].ToString());
? ? ? ? ? ? ? ?this.listView2.Items.Add(lvi);
? ? ? ? ? ?}
? ? ? ? ? ?this.listView2.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ?}
? ? ? ?catch (SqlException ae)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ?MessageBox.Show("error");
? ? ? ?}
? ? ? ?finally
? ? ? ?{
? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ?}
? ?}
? ?private void label3_Click(object sender, EventArgs e)
? ?{
? ?}
? ?private void listView2_SelectedIndexChanged(object sender, EventArgs e)
? ?{
? ?}
? ?private void button4_Click(object sender, EventArgs e)
? ?{//查詢至少具有兩份工作的員工姓名與公司名
// ? ? ? ? ? ?select
e.EmpName,c.CmpName from employee as e join works as w on e.EmpNo =
w.EmpNo join company as c on w.CmpNo = c.CmpNo where e.EmpNo in (select
e.EmpNo
//from employee as e join works as w on e.EmpNo = w.EmpNo
// ? ? ? ? ? ?group by e.EmpNo
// ? ? ? ? ? ?having count(e.EmpName) >= 2
? ? ? ?string connStr = "Data Source=DESKTOP-CHKF0KA;" +
? ? ? "Initial Catalog=temp;Integrated Security=True";
? ? ? ?SqlConnection conn = new SqlConnection(connStr);
? ? ? ?conn.Open();
? ? ? ?if (conn.State == ConnectionState.Open)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("連接成功");//控制臺(tái)用
? ? ? ?}
//select e.EmpName,c.CmpName
//from employee as e join works as w on e.EmpNo = w.EmpNo join company as c on w.CmpNo = c.CmpNo
//where e.EmpNo in (
//select e.EmpNo
//from employee as e join works as w on e.EmpNo = w.EmpNo
//group by e.EmpNo
//having count(e.EmpName) >= 2
//)
? ? ? ?string sql = String.Format(
? ? ? ? ? ?"select e.EmpName,c.CmpName " +
? ? ? ? ? ?"from employee as e " +
? ? ? ? ? ?"join works as w on e.EmpNo = w.EmpNo join company as c on w.CmpNo = c.CmpNo " +
? ? ? ? ? ?"where e.EmpNo in (" +
? ? ? ? ? ?"select e.EmpNo " +
? ? ? ? ? ?"from employee as e " +
? ? ? ? ? ?"join works as w on e.EmpNo = w.EmpNo " +
? ? ? ? ? ?"group by e.EmpNo " +
? ? ? ? ? ?"having count(e.EmpName) >= 2" +
? ? ? ? ? ?")");
? ? ? ?SqlCommand cmd = new SqlCommand(sql, conn);
? ? ? ?listView3.Items.Clear();
? ? ? ?try
? ? ? ?{
? ? ? ? ? ?SqlDataReader re = cmd.ExecuteReader();//.ExecuteNonQuery();
? ? ? ? ? ?Console.WriteLine("修改成功");
? ? ? ? ? ?if (!re.HasRows)//判斷是否為空
? ? ? ? ? ?{ MessageBox.Show("結(jié)果為空"); return; }
? ? ? ? ? ?this.listView3.BeginUpdate(); ? //數(shù)據(jù)更新,UI暫時(shí)掛起,直到EndUpdate繪制控件,可以有效避免閃爍并大大提高加載速度
? ? ? ? ? ?for (int i = 0; re.Read(); i++) ? //添加10行數(shù)據(jù)
? ? ? ? ? ?{
? ? ? ? ? ? ? ?ListViewItem lvi = new ListViewItem();
? ? ? ? ? ? ? ?lvi.Text = re["EmpName"].ToString();
? ? ? ? ? ? ? ?lvi.SubItems.Add(re["CmpName"].ToString());
? ? ? ? ? ? ? ?this.listView3.Items.Add(lvi);
? ? ? ? ? ?}
? ? ? ? ? ?this.listView3.EndUpdate(); ?//結(jié)束數(shù)據(jù)處理,UI界面一次性繪制。
? ? ? ?}
? ? ? ?catch (SqlException ae)
? ? ? ?{
? ? ? ? ? ?Console.WriteLine("修改失敗");
? ? ? ? ? ?Console.WriteLine(ae.Message);
? ? ? ? ? ?MessageBox.Show("sql error");
? ? ? ?}
? ? ? ?finally
? ? ? ?{
? ? ? ? ? ?conn.Close();//對(duì)數(shù)據(jù)庫(kù)操作完成后,需要關(guān)閉數(shù)據(jù)庫(kù),釋放內(nèi)存
? ? ? ?}
? ?}
? ?private void textBox1_TextChanged_1(object sender, EventArgs e)
? ?{
? ?}
}
}