學習WinForm窗體程序也有一段時間了,今天就來嘗試着來一個項目熱熱身~
在我們通常使用的MySchool管理中,不外乎這幾種功能:增、刪、改、查、改密碼
在過去的C#中確實是挺簡單的,但是在學習了WinForm的各種控件以后,我們就能
徹底擺脫控制台程序的low!走上高大上的道路!~
>切記:每個控件的使用前都要先修改他們的Name屬性
雖然連接數據庫的代碼都已經很熟了,但是還是要再次強調一下!
string str = "Data source=.;initial catalog=MySchool;uid=sa"; SqlConnection con = new SqlConnection(str);
>>>驗證數據庫中的賬戶和密碼來登錄,從而才能顯示主菜單
再次強調下,連接到功能窗口的方法,比如是連接到新建學生用戶的
eg: //在單擊"新建學生用戶"的Click事件的方法中添加如下代碼 FormStudent frm = new FormStudent(); frm.Show();
既然說到了新增學生信息,那么就來認真的解說下具體的步驟吧
//在Student窗體的Load事件中就要把應填入數據信息的text文本框綁定到數據庫上
public void LoadAllGrade()
{
//拿到所有的年級
string str = "Data source=.;initial catalog=MySchool;uid=sa";
SqlConnection con = new SqlConnection(str);
string sql = "select gradename from grade";
SqlCommand cmd = new SqlCommand(sql, con);
try
{
con.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr != null)
{
if (dr.HasRows)
{
while (dr.Read())
{
string gname = dr["gradename"].ToString();
//每讀到一個年級名稱,我就將"S1",添加到下拉框
cboGrade.Items.Add(gname);
}
}
}
}
catch (Exception)
{
MessageBox.Show("網絡異常");
}
finally
{
con.Close();
}
}
上面簡單的介紹了怎么把復雜的年級下拉框從數據庫中讀取出來並綁定到下拉框上
接下就隨便找倆個普通的文本框來進行傳值吧
使用insert語句向MySchool中添加學生信息
//編輯學生信息並保存
//將獲取的學號轉化為int類型 int non = Convert.ToInt32(txtStuno.Text); //添加學生密碼 string stupwd = TextNewPwd.Text;
string sql = "insert into Student values('" + stupwd + "','" + stuname + "','" + stugender + "');
接下來就是按照學生姓名來進行模糊查詢學生信息了
主要就是在窗體的Load事件中就要遍歷Myschool,將所有的學生信息讀取到ListView中.
//加載出所有的學生信息 string str = "Data source=.;initial catalog=MySchool;uid=sa"; SqlConnection con = new SqlConnection(str); string sql = "select * from Student; SqlCommand cmd = new SqlCommand(sql, con); try { con.Open(); SqlDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { //將讀取出來的信息賦值給對應的TextBox //姓名 string StuName = dr["studentname"].ToString(); gbStuN.Text = StuName; //密碼 string StuPwd = dr["LoginPwd"].ToString(); TextName.Text = StuPwd; TextNewPwd.Text = StuPwd; //電話 string StuPhone = dr["Phone"].ToString(); TextPhone.Text = StuPhone; //郵箱 string StuEmail = dr["Email"].ToString(); TextEmail.Text = StuEmail; //地址 string StuAdress = dr["Address"].ToString(); Address.Text = StuAdress; //年級編號 int gid = Convert.ToInt32(dr["gradeid"]); //- - - 根據年級編號獲取對應的年級名稱 string gradename = GetGradeNameByGradeId(gid); cboGrade.Text = gradename; //性別 string gender = dr["gender"].ToString(); if (gender.Equals("1")) { raonan.Checked = true; } else if (gender.Equals("0")) { raonv.Checked = true; } //出生日期 DateTime dt = Convert.ToDateTime(dr["birthday"]); Dt.Value = dt; } dr.Close(); } catch (Exception) { MessageBox.Show("檢查代碼3333333333!"); } finally { con.Close(); }
那么接下來就只需要在查詢語句后面加上where條件就可以進行判斷查詢了,那么相應的修改和刪除也就解決了,具體的就不多說了,抓緊時間進行下一步!
接下來就是修改當前用戶的密碼了,當然了,也要進行相應的一些判斷語句是吧,不然隨便就可以更改豈不是亂套了?!~
就像醬紫:
判定一下用戶輸入的原密碼是否是正確的,然后在進行相應的操作!,接下來就一起來見證吧~
我們新創建一個窗體添上相應的控件,更改其屬性即可,主要代碼如下:
1 //在單擊修改的Click事件中進行判定 2 //判斷原密碼是否輸入正確來 3 if (tboldpwd.Text == pwd) 4 { 5 //第二次的密碼tbpwd第一次的密碼tbnewpwd 6 if (tbpwd.Text == tbnewpwd.Text) 7 { 8 string str = "Data Source=.;initial catalog=MySchool;uid=sa"; 9 SqlConnection con = new SqlConnection(str); 10 con.Open(); 11 string sql = "update Student set LoginPwd='" + tbnewpwd.Text + "' where LoginPwd='" + tboldpwd.Text + "'"; 12 SqlCommand cmd = new SqlCommand(sql, con); 13 int count = Convert.ToInt32(cmd.ExecuteNonQuery()); 14 if (count > 0) 15 { 16 MessageBox.Show("修改成功!"); 17 } 18 else 19 { 20 MessageBox.Show("修改失敗!"); 21 } 22 } 23 else 24 { 25 MessageBox.Show("兩次密碼不一致!"); 26 } 27 } 28 else 29 { 30 MessageBox.Show("請輸入正確的原密碼!","溫馨提示"); 31 }
最主要的就是在用戶登錄的FormLogin窗體中將用戶用來進行登錄的密碼付給一個公有的變量,
在修改密碼的窗體中進行調用,用來和用戶輸入的原密碼進行匹配,當然了,這樣的修改密碼確實有些雞肋,
但是我們同樣的可以依照這樣的方法來把用戶輸入的密碼和數據庫中的密碼值進行匹配,在這里就不細說了...
時間問題,今天就到這里,明天繼續更新!敬請期待