使用C#開發數據庫應用系統
第一章筆記
1:初始Windows:
在Visual Studio 中 ,WinForm應用的窗體文件中有兩種編輯試圖:
----1:窗體設計器
----2:代碼編輯器
2:在VS中創建Windows應用程序的步驟:
----1>新建項目
----2>項目類型:visualC#項目
----3>模板
3:Windows應用程序:
一個解決方案里有好多項目
主程序文件里包含main()方法
main()方法是Windows程序入口
程序調試中通過修改Main()方法改變啟動窗體
4:用partial將同一個窗體的代碼分開放在兩個文件中:
----一個存放VS自動生成的代碼
----一個存放我們自己的編寫的代碼
form1:Form-------冒號表示繼承。像孩子繼承父母的特征所有的窗體都繼承的form
5:構造函數:做一絲的初始化工作
窗體標題:Name 窗體的圖標:Icon 背景圖標:BackgroundImage 背景顏色:BackgroundColor
最大化按鈕:Maximinbox 最小化按鈕:minimun 窗體邊框樣式:formborderstyle
窗體初始位置:startposition 窗體狀態:windowsstate
6:命名規范前綴:
控件名稱: 控制類名: 命名前綴:
標簽 Label IbI
文本框 Textbox txt
組合框 combobox cbo
按鈕 Button btn
規范化命名可以提高程序的可讀性和維護性
文本框的主要屬性:
Max Length:指定在文本框輸入的最大餓字符串
Mulitiline:表示是否可以在文本框中輸入多行文本
Passwordchar:指示在作為密碼框時,文本框中顯示的字符。而不是實際的輸入的文本
ReadOnly:指定是否允許編輯文本框的文本
text:與文本關聯的文本
組合框的屬性:
Items:組合框中的項
DropDownstyle:定義組合框的風格,指示是否顯示列表框部分,是否允許用戶編輯文本框的部分
Text:與組合框關聯的文本
SelectedIndex:當前選定的項目的索引號,列表框的每項都有一個索引號。從零開始
SelectedItem:獲取當前選定的項
事件: 說明:
click: 單機控件時發生
SelecteddIndexChanged: 在SelecteddIndex屬性修改后發生
按鈕的主要屬性:
Enable:布爾值,表示控制是否可用。true 表示可用,false表示不可用,如果控件不可用,運行后顯示灰色。
Text:按鈕顯示的文本
TextAlign:按鈕上的文本對其方式
編寫事件處理程序:
(1):單機要創建事件處理的程序的窗體或者控制
(2):在“屬性”窗口中單擊“事件” 按鈕 (閃電的字符)
(3):雙擊要處理的事件定位到事件處理的方法
(4):編寫處理代碼
Messagebox消息框:
====1:最簡單的消息框:
Messagebox.show("要顯示的字符串");
====2:帶標題的消息框:
Messagebox.show("要顯示的字符串,消息框的標題");
====3:帶標題,按鈕的消息框:
MessageBox.show(“要現實的消息框,消息框的標題,消息框的按鈕”);
====4:帶標題,按鈕,圖標的消息框:
Messagebox.show("要顯示的消息框,消息框的標題,消息框的按鈕,消息框的圖標");
本章總結
====1:使用窗體的屬性設計窗體,窗體常用的屬性有FormBorderStyle,StartPosition,windowState等:
====2:使用標簽(Label) 文本框(TextBox) 組合框(ComboBox) 按鈕(Button)等設計窗體的界面 ,這些控件有通用的屬性,如Name Text ,Enable:也有各自的屬性:
====3:編寫事件處理程序:及針對用戶觸發的事件編寫適當的處理方法
====4:使用窗體的Show()方法和hide()方法實現窗體的顯示和隱藏;
====5:在窗體中定義字段,實現窗體的數據傳遞
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace 第一章 { public partial class frmMain : Form { //連接字符串 private const string sqlcon = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Pwd=."; //用於打開/關閉數據庫連接 SqlConnection con = new SqlConnection(sqlcon); //構造方法:用來做初始化工作 public frmMain() { InitializeComponent(); } //取消按鈕的單擊事件 private void btnexit_Click(object sender, EventArgs e) { DialogResult result= MessageBox.Show("是否取消?","提示",MessageBoxButtons.YesNo); if (result == DialogResult.Yes) { //關閉窗體 this.Close(); } else { //清空窗體中所有信息 this.txtName.Clear(); this.txtPwd.Clear(); this.cborow.SelectedIndex = -1 ; } } //登錄按鈕的單擊事件 private void btnOK_Click(object sender, EventArgs e) { if (CheckInput()) { try { con.Open(); string sql = "select count(*) from Student where StudentNo='" + this.txtName.Text + "' and LoginPwd='" + this.txtPwd.Text + "'"; SqlCommand com = new SqlCommand(sql, con); int count = (int)com.ExecuteScalar(); if (count > 0) { MessageBox.Show("登陸成功!", "提示"); //創建出FrmTest窗體 FrmTest test = new FrmTest(); //test代表的就是FrmTest窗體 .Test就是標題 test.txtshow.Text = "歡迎您:" + this.txtName.Text; test.Show(); } else { MessageBox.Show("登陸失敗!", "提示"); this.txtName.Clear(); this.txtPwd.Clear(); this.cborow.SelectedIndex = -1; } } catch (Exception ex) { Console.WriteLine(ex); } finally { con.Close(); } } } //在點擊登錄按鈕的時候驗證文本框內容是否為空 private bool CheckInput() { bool flag = true; //判斷文本框是否輸入值了? //判斷txtName是否輸入值了 if (this.txtName.Text.Trim()== null||this.txtName.Text.Trim() =="") { //提示信息 MessageBox.Show("請輸入登錄賬號!","登錄驗證"); flag = false; }else if (this.txtPwd.Text.Trim() == null || this.txtPwd.Text.Trim() == "") { //提示信息 MessageBox.Show("請輸入登錄密碼!", "登錄驗證"); flag = false; } else if (this.cborow.Text.Trim() == null || this.cborow.Text.Trim() == "") { MessageBox.Show("請選擇登錄角色!", "登錄驗證"); flag = false; } return flag; } } }