自個兒瞎學,希望不會有人被帶歪
C#下結合Sqlserver2008的學生信息管理系統http://download.csdn.net/download/bidlin/9365037
嗯,依然不會C#
本人使用vs2013社區版,編譯運行流暢
右鍵出設計器
//frm_logn
//Properties
//引用
//Resources
//app.config
//(20行)student_grade.cs(這是個廢窗體,代碼窗體都是空的)
(??)denglu(這玩意兒應該沒啥用,都編寫調試完成了,也沒見用到它,簡稱順手添加的文件)
√(157行)Form1.cs(主登錄界面)
建立窗體相似度99%(就序號不一樣)
代碼的話,就是和其他窗體交互的代碼,標題居中的代碼,外加各種if else 的登錄判定;其他和couror_chaxun.cs差不多。
√(75行)frm_Manager.cs(也就是點擊打開的七個事件,對應下面的六個窗體,外加一個關閉函數)
√((80行)mamager_student_xiugai.cs(嗯,真的是mamager,恩,mamager從頭用到尾)
√(94行)manager_student_luru.cs
√(105行)manager_teacher_luru.cs(嗯,簡直就是上面的學生錄入,最後一句都不帶改的)
√(80行)manager_teacher_xiugai.cs
√(86行)manager_course_anpai.cs
√(87行)couror_chaxun.cs(詳解在下面,其他頁面性質上差別不大)
窗體:
添加窗體
工具箱拖按鈕
屬性改名字大寫等等
窗體這部分差不多一樣了
代碼:
頭文件:
我這邊多了個頭文件using System.Threading.Tasks;(先注掉,到時候再說,估計瞎拖的時候扔上去的,下回有沒有在做定論)
少了個using System.Data.SqlClient;。。。嗯,就先貼上去吧,到時候再說。
代碼:
嗯,兩個按鈕兩個函數,很合理(我點了4個)
刪了個函數,窗體全丟失,明天再說。
注掉那個事件就可以了。
///////////////////////////////
整個框:
strConn = 本地;數據庫名稱;當前Windows 帳戶;
建立連接;
嗯,數據庫就不建了,一起用啊一起用;
所有課程:
準備顯示可顯示全部內容;
創建DataSet實例;
準備建立連接;
連接配置;
建立連接;
準備建立命令;
建立命令;
建立數據適配器;
使用Adapter填充ds;(try一下)
建立表;
填充表;
數據源爲此表;
清空ds;
查詢該課程:
查詢結果全要顯;
建立數據庫連接;
使用Adapter填充DataSet;DataSet將0表複製給table;定位此table;
或者拋出沒此課;
清空DataSet;
光見打開連接了c.Open(),沒見c.Close();c.Open()的作用域值得討論(嗯,改天再說);
√ (156行)frm_Student.cs(雖然名字有些混亂,基本上重點代碼都被放在這個窗體裏了)
函數太多了,需要整理;
估計這個頁面修改太多次了,名字都亂寫的,還有各種註釋函數,空函數;
label長爲0,找到廢了老大勁了。
√ (63行)password_xiugai.cs
√(70行)student_info.cs
√ (153行)frm_Teacher.cs
//(63行)password_xiugai.cs(上面有,只不過這個窗體被重複利用)
√ (65行)teacher_infos.cs
關上連接了,以及重新打開;
可以不按數據庫表中順序傳數據了;
√ (55行)teacher_luru.cs
√ (77行)teacher_xiugai_grade.cs
後面倆窗體基本上盲打
√(21行)Program.cs(看着挺重要的,到時候再說)(待施工;明天研究下主函數順便調調BUG就完結了)
挺重要的,雖然代碼挺少,但每行都值得查一下,所以內容較多,放到了另外的帖子裏頭。
///////////////////////////////////////////////
編譯運行修了一天的BUG;
大概就是
多了個空格;
單詞拼錯;
連接配置的不同寫法;
圖片沒插;
密碼沒隱藏爲*;
忘寫最後一句導致結果沒出現在窗體上;
類型轉換等;
大部分都在sql語句中,畢竟編寫的時候編譯軟件就已經檢查語法拼寫了,字符串就跳過了。
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
√(86行)manager_course_anpai.cs
try
{
SqlDataReader reader = cmd.ExecuteReader();
int t = 0;
if(reader.HasRows)
{
while(reader.Read())
{
string s = (string)reader.GetValue(0);
if(tb_teacher.Text.ToString().Equals(s))
{
MessageBox.Show("添加重複!");
t = 1;
}
}
if(t == 0)
{
insert();
}
}
else
{
insert();
}
reader.Close();
}
catch
{
insert();
}
//不知道catch成立的條件和原因。