基于C#實(shí)現(xiàn)宿舍管理系統(tǒng)
前言
本次項(xiàng)目主要是因?yàn)槲覀兊拇笞鳂I(yè)要求要求,因?yàn)榫W(wǎng)上C#的資源不太多,因此我根據(jù)網(wǎng)上的資料制作了以下的小項(xiàng)目。
一、項(xiàng)目創(chuàng)建
首先通過(guò)創(chuàng)建C#的Windows窗體應(yīng)用程序,名字可以自行設(shè)置,框架可以選用默認(rèn)的。

二、主頁(yè)面設(shè)計(jì)
這是我的項(xiàng)目主頁(yè)面,主要包括4個(gè)Label類(lèi),3個(gè)Button類(lèi),2個(gè)radioButton1,1個(gè)pictureBox1。主要的設(shè)計(jì)界面就如圖所示。命名和圖片大家可以自行的設(shè)置,通過(guò)對(duì)組件的Text屬性進(jìn)行設(shè)置,radioButton具有一個(gè)Checked屬性,可以控制默認(rèn)的多選框。(例如我的在用戶)

三、主頁(yè)面代碼
主頁(yè)面代碼主要包括驗(yàn)證登錄信息,通過(guò)與SQL查詢來(lái)驗(yàn)證用戶信息,以及打開(kāi)對(duì)象的對(duì)話框。
1.登錄按鈕
首先我們寫(xiě)一個(gè)Login的登錄方法用來(lái)判斷登錄,隨后會(huì)跳轉(zhuǎn)到別的窗口(會(huì)在下一次的教程中編寫(xiě))。代碼如下。
public void Login() {
//用戶
if (radioButton1.Checked == true) {
DataBase DB = new DataBase();
string sql = $"select * from [User] where id='{textBox1.Text}' and password='{textBox2.Text}'" ;
IDataReader dc = DB.read(sql);
if (dc.Read())
{
Data.UID = dc["id"].ToString();
Data.UName = dc["name"].ToString();
MessageBox.Show("登錄成功");
User1 user = new User1();
this.Hide();
user.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("登陸失敗");
}
DB.Close();
}
//管理員
if (radioButton2.Checked == true) {
DataBase DB = new DataBase();
string sql = $"select * from [Admin] where id='{textBox1.Text}' and password='{textBox2.Text}'";
IDataReader dc = DB.read(sql);
if (dc.Read())
{
MessageBox.Show("登錄成功");
Admin1 admin = new Admin1();
this.Hide();
admin.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("登陸失敗");
}
DB.Close();
}
}
隨后雙擊登錄button,輸入以下代碼,用以判斷空值。
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")
{
Login();
}
else
{
MessageBox.Show("輸入有空,請(qǐng)重新輸入");
}
}
2.退出按鈕
這個(gè)按鈕就沒(méi)啥難點(diǎn)直接上代碼了,雙擊退出Button。
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
3.注冊(cè)按鈕
用以跳轉(zhuǎn)的按鈕,也是雙擊注冊(cè)Button,同樣的跳轉(zhuǎn)的窗口將在下次教程中講解。
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
4.SQL配置
隨后我們的代碼里還要新建一個(gè)DataBase.cs用以創(chuàng)建SQL連接。代碼如下。

using System.Data.SqlClient;
namespace HomeWork
{
class DataBase
{
SqlConnection sc;
public SqlConnection connect() {
string str= @"Data Source=.;Initial Catalog=DormitoryDB;integrated security=true"; //位置(這個(gè)地方根據(jù)自己的需要修改)
sc = new SqlConnection(str); //連接
sc.Open(); //打開(kāi)
return sc; //返回對(duì)象
}
public SqlCommand command(string sql) {
SqlCommand cmd = new SqlCommand(sql, connect());
return cmd;
}
public int Execute(string sql) //更新
{
return command(sql).ExecuteNonQuery();
}
public SqlDataReader read(string sql) //讀取
{
return command(sql).ExecuteReader();
}
public void Close() {
sc.Close();
}
}
}
(1)SQL打開(kāi)
代碼都有了但是SQL配置還未完成。首先你得安裝SQL數(shù)據(jù)庫(kù)打開(kāi)

(2)SQL登錄
我用的是默認(rèn)Windows身份驗(yàn)證,也可以用管理員登錄。

(3)新建數(shù)據(jù)庫(kù)
登錄后新建一個(gè)數(shù)據(jù)庫(kù),如下。

(3)新建數(shù)據(jù)表
之后根據(jù)自己的需要新建表格。我將我的數(shù)據(jù)表展示一下。(可能不太嚴(yán)謹(jǐn)因?yàn)槲业乃揭灿邢蓿?/p>




5.主頁(yè)總體代碼
還需要一個(gè)Data類(lèi)用以保存用戶的ID等信息,便于后面的開(kāi)發(fā)。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace HomeWork
{
class Data
{
public static string UID = "", UName = ""; //用戶名和ID
}
}
using System;
using System.Data;
using System.Windows.Forms;
namespace HomeWork
{
public partial class Index : Form
{
public Index()
{
InitializeComponent();
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text != "" && textBox2.Text != "")
{
Login();
}
else
{
MessageBox.Show("輸入有空,請(qǐng)重新輸入");
}
}
//登錄方法
public void Login() {
//用戶
if (radioButton1.Checked == true) {
DataBase DB = new DataBase();
string sql = $"select * from [User] where id='{textBox1.Text}' and password='{textBox2.Text}'" ;
IDataReader dc = DB.read(sql);
if (dc.Read())
{
Data.UID = dc["id"].ToString();
Data.UName = dc["name"].ToString();
MessageBox.Show("登錄成功");
User1 user = new User1();
this.Hide();
user.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("登陸失敗");
}
DB.Close();
}
//管理員
if (radioButton2.Checked == true) {
DataBase DB = new DataBase();
string sql = $"select * from [Admin] where id='{textBox1.Text}' and password='{textBox2.Text}'";
IDataReader dc = DB.read(sql);
if (dc.Read())
{
MessageBox.Show("登錄成功");
Admin1 admin = new Admin1();
this.Hide();
admin.ShowDialog();
this.Show();
}
else
{
MessageBox.Show("登陸失敗");
}
DB.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void button3_Click(object sender, EventArgs e)
{
register register = new register();
register.ShowDialog();
}
}
}
以上就是基于C#實(shí)現(xiàn)宿舍管理系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于C#宿舍管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#制作網(wǎng)站掛機(jī)程序的實(shí)現(xiàn)示例
本文主要介紹了C#制作網(wǎng)站掛機(jī)程序,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-10-10
Unity?UGUI的PhysicsRaycaster物理射線檢測(cè)組件介紹使用
這篇文章主要介紹了Unity?UGUI的PhysicsRaycaster物理射線檢測(cè)組件的介紹及使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
Silverlight實(shí)現(xiàn)星星閃爍動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了Silverlight實(shí)現(xiàn)星星閃爍動(dòng)畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07
C#比較兩個(gè)List集合內(nèi)容是否相同的幾種方法
本文詳細(xì)介紹了在C#中比較兩個(gè)List集合內(nèi)容是否相同的方法,包括非自定義類(lèi)和自定義類(lèi)的元素比較,對(duì)于非自定義類(lèi),可以使用SequenceEqual、排序后比較或HashSet來(lái)忽略重復(fù)元素,對(duì)于自定義類(lèi),需要重寫(xiě)Equals和GetHashCode方法,然后使用相應(yīng)的比較方法2025-02-02
c#linq里的Skip和Take實(shí)現(xiàn)分頁(yè)或遍歷
LINQ的優(yōu)勢(shì)在于它提供了一種直觀、類(lèi)型安全的方式來(lái)操作各種類(lèi)型的數(shù)據(jù),查詢常需要獲取一部分?jǐn)?shù)據(jù),為了實(shí)現(xiàn)這一功能,LINQ提供了Take?和Skip運(yùn)算符,Take運(yùn)算符用于從一個(gè)序列中返回指定個(gè)數(shù)的元素,Skip運(yùn)算符用于從一個(gè)序列中跳過(guò)指定個(gè)數(shù)的元素2024-01-01
winform導(dǎo)出dataviewgrid數(shù)據(jù)為excel的方法
這篇文章主要介紹了winform導(dǎo)出dataviewgrid數(shù)據(jù)為excel的方法,可實(shí)現(xiàn)將dataViewGrid視圖中的數(shù)據(jù)導(dǎo)出為excel格式的功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-01-01

