1. 程式人生 > >c#編寫簡單的學生管理系統

c#編寫簡單的學生管理系統

心得:在查詢資料時,如果查詢的內容只是作為某個判斷的條件,直接執行用SqlCommand執行語句,如果要在Lable或者DataGirdView中顯示出來查詢的結果。此時,分兩種情況:SqlDataReader逐條查詢,SqlDataAdapter結果查詢

問題:在用引數接收comboBox資訊時,為什麼報錯,改為佔位符的形式就可以(最後一部分程式碼)

一,首先建立三個表student、teacherInfo、stndentInfo 分別用於存放學生基本資訊、老師賬戶和密碼、學生的學號和密碼


二,分別建立老師和學生的登陸入口,從而完成不同的操作人員的資料庫的要求


      為了區別不同的登陸人員,先定義兩個RadioButton,由於學生人數比老師人數多的多,在學生的RadioButton的控制元件屬性check中,選擇為預設。

 private void btnOk_Click(object sender, EventArgs e)
        {
            if (rbtnStudent.Checked)
            {   
                //選擇的是學生物件
                using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School2;User ID=sa;Password =2323010676;"))
                {
                    conn.Open();//開啟資料庫的連線

                    String sql = "select * from stndentInfo where sno = @sno and spw = @spw";//建立資料庫的操作字串

                    SqlCommand cmd = new SqlCommand(sql, conn); //對指定的物件,操作字串內容

                    cmd.Parameters.Add(new SqlParameter("@sno", txtNo.Text));//用引數代替佔位符,線性更安全
                    cmd.Parameters.Add(new SqlParameter("@spw", txtPw.Text));

                    SqlDataReader reader = cmd.ExecuteReader();//操作

                    if (reader.Read())
                    {
                        //如果查詢到內容,跳轉到Information介面,同時關閉當前介面
                        Information info = new Information(); 
                        info.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("請輸入正確資訊!");
                    }
                }
            }
            else
            {
                //這裡只有兩個選項,就沒寫條件,其餘同上,注意對應的資料關係,表是不同的
                using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School2;User ID=sa;Password =2323010676;"))
                {
                    conn.Open();

                    String sql = "select * from teacherInfo where userT = @userT and pwT = @pwT";

                    SqlCommand cmd = new SqlCommand(sql, conn);
                    cmd.Parameters.Add(new SqlParameter("@userT", txtNo.Text));
                    cmd.Parameters.Add(new SqlParameter("@pwT", txtPw.Text));

                    SqlDataReader reader = cmd.ExecuteReader();

                    if (reader.Read())
                    {
                        teacherUse teac = new teacherUse();
                        teac.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("請輸入正確資訊!");
                    }
                }
            }
        }

        //如果取消操作,關閉程式
        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.Close();
        }

       三,對應的學生的功能:完成修改密碼,新增新的學生資訊(為了方便),這裡需要引起重視的是,這裡的date型別需要進行轉換,注意和老師介面查詢是的date型別做出區分。


插入資料

 private void btnOk_Click(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School2;User ID=sa;Password =2323010676;"))
            {
                conn.Open();

                String sql = "insert into student(sno,sname,smajor,sbirthday,sSex) values (@sno,@sname,@smajor,@ssbirthday,@sSex)";

                SqlCommand cmd = new SqlCommand(sql, conn);

                cmd.Parameters.Add(new SqlParameter("@sno",txtNo.Text));
                cmd.Parameters.Add(new SqlParameter("@sname",txtStname.Text));
                cmd.Parameters.Add(new SqlParameter("@smajor",cobMajor.Text));
                cmd.Parameters.Add(new SqlParameter("@ssbirthday",dtpBirth.Value.Date)); //這裡的時間格式需要注意,直接的讀取時間,是字串型別,
                                                                                         //不好轉換,將其用Date型別讀取
                cmd.Parameters.Add(new SqlParameter("@sSex",cobSex.Text));

                int rows = cmd.ExecuteNonQuery();//執行插入語句
                if ( rows > 0)
                {
                    MessageBox.Show("資訊錄入成功");
                }
                else
                {
                    MessageBox.Show("請輸入準確資訊");
                }
            }
   
        }

修改密碼


 private void btnOk_Click(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School2;User ID=sa;Password =2323010676;"))
            {
                conn.Open();

                
                if (txtNewpw.Text == txtCheckpw.Text)
                {
                    string sql = String.Format("update stndentInfo set spw = @spw where sno = @sno");

                    
                    SqlCommand cmd = new SqlCommand(sql, conn);

                   
                    cmd.Parameters.Add(new SqlParameter("@sno", txtUser.Text));//這裡注意也要寫成txt.User.Text轉換的是文字框裡面的內容
                    cmd.Parameters.Add(new SqlParameter("@spw", txtCheckpw.Text));

                    int rows = cmd.ExecuteNonQuery();//這句話時執行的語句的必要的控制性的一句話

                    MessageBox.Show("新密碼已經修改完成");
                }
                else
                {
                    MessageBox.Show("請輸入兩次相同的密碼");
                }
               
            }
        }

       四,對應的老師的功能:查詢學生的詳細資訊,注意date格式的轉換,以及完成查詢後的標籤內容的轉換

a.


private void btnOk_Click(object sender, EventArgs e)
        {
            if(txtSno.Text == null)
            {
                MessageBox.Show("請輸入學號");
            }
            else
            {
                using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School2;User ID=sa;Password =2323010676;"))
                {
                    conn.Open();



                    String sql = "select * from student where sno = @sno";

                    SqlCommand cmd = new SqlCommand(sql,conn);

                    cmd.Parameters.Add(new SqlParameter("@sno", txtSno.Text));

                    SqlDataReader reader = cmd.ExecuteReader();

                    if (reader.Read())
                    {
                        txtMajor.Text = reader.GetString(reader.GetOrdinal("smajor"));
                        txtSex.Text = reader.GetString(reader.GetOrdinal("sSex"));
                        txtName.Text = reader.GetString(reader.GetOrdinal("sname"));

                        DateTime dt = reader.GetDateTime(reader.GetOrdinal("sbirthday"));//用Datetime格式接收時間物件
                        txtBirthday.Text = dt.ToShortDateString();//將需要顯示的內容轉化成能在lable控制元件中顯示的字串                        
                    }
                    else
                    {
                        //清除上一次查詢標籤中的內容,不然下次查詢不顯示查詢出來的內容
                        txtSno.Text = null;
                        txtSex.Text = null;
                        txtName.Text = null;
                        txtMajor.Text = null;
                        txtBirthday.Text = null;
                        MessageBox.Show("抱歉,沒有查到對應學號的學生資訊");
                    }

                }
            }
        }

b.分組對學生進行查詢,將結果新增進DataGirdView控制元件中,注意前面也提到了Anchor控制位置


public partial class 學生資訊查詢 : Form
    {
        public 學生資訊查詢()
        {
            InitializeComponent();
        }

        private void 學生資訊查詢_Load(object sender, EventArgs e)
        {
            //載入介面時,即新增下拉框裡面的內容
            cbxinfo.Items.Add("地信專業");
            cbxinfo.Items.Add("測繪專業");
            cbxinfo.Items.Add("物理專業");
            cbxinfo.Items.Add("外語專業");
            cbxinfo.Items.Add("中文專業");
            cbxinfo.Items.Add("計算機專業");

        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            using (SqlConnection conn = new SqlConnection("Data Source=DESKTOP-BEUJ3C4;Initial Catalog=School;User ID=sa;Password =2323010676;"))
                //這裡使用的資料庫是,前面查詢資訊作業新增的school資料庫,用於存放學生的基本資訊,及考試資訊
            {
                conn.Open();

                //String sql = "select * from student where 所屬專業 [email protected]所屬專業";

                String sql = String.Format( "select * from student where 所屬專業 ='{0}'",cbxinfo.Text);

                SqlCommand cmd = new SqlCommand(); //建立資料庫命令物件
               // cmd.Parameters.Add(new SqlParameter("@所屬專業",cbxinfo.Text));//將下拉框裡面的文字代替引數資訊  用引數不行,不知為什麼,改用佔位符

                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);//逐行查詢,區別於SqlDataReader聚合查詢
                DataSet ds = new DataSet(); //建立容器,存放查詢出來的物件
                sda.Fill(ds);//將物件填充容器

                dgvShow.DataSource = ds.Tables[0];//繫結資料,將查詢出來的第一個表資料顯示在dgvShow中

            }
        }
    }

相關推薦

用ArrayList<E>實現簡單學生管理系統

package ArrayTest; /* * 用arrayList<E>去實現學生管理系統 */ import java.util.ArrayList; import java.util.Scanner; public class StudentSystemList { //

javaGUI案例--t31_student簡單學生管理系統

  本篇,我們來繼續學習和鞏固下swing+Jdbc。 為此,筆者開發了一個新的案例——t31_student學生管理系統,實現了基本的curd及模糊查詢的功能。  專案原始碼: https://github.com/jellyflu/t31_st

c語言實現學生管理系統

{{ int i,j,o; char a[20]; system("cls"); printf("修改學生的學號:"); scanf("%s",&a); //通過輸入需要修改資訊的學號找到他 print

用ArrayList實現簡單學生管理系統

package ArrayTest; /* * 用arrayList<E>去實現學生管理系統 */ import java.util.ArrayList; import java.util.Scanner; public class StudentSyst

簡單學生管理系統(JDBC操作)

1、學生類 package manage; import java.util.Date; /** * @author fanxf * @since 2018/4/27 17:01 */ public class Student { private int

編寫一個學生管理系統程式,用來記錄學生的資訊(包括姓名、年齡、性別、學號、分數),提供增加、刪除、查詢學生資訊的入口

剛抽到這題的時候沒在意,但是真正做起來的時候,才覺得這題對於零基礎的人來說是十分的困難。首先從題目的字數來看題目字數已經不少,其次看了幾遍題目之後還是無從下手。不管你們覺得難不難,反正對於零基礎的我來說,不是一個難字可以了得。最後只能找資料來尋求一些思路,看了一些這樣的帖子

c#寫的學生管理系統的心得1

1.html檔案中引入另一個html檔案,用 #parse("../include/header.htm"),最好不要用<iframe  scrolling="no" marginwidth="0" marginheight="0" width="100%" heig

python實現簡單學生管理系統

使用python實現了一個簡單的學生管理系統,包含註冊,登陸,修改密碼和簡單查詢資訊等簡單功能,後續感興趣可以自己新增上其他資訊或與已有的學生資訊表相關聯。註冊後存入資料庫對應表格中,並對密碼進行加密,表格比較簡單,只有id,姓名,密碼和is_delete四個欄位,程式碼使用

Java 基於MySQL資料庫的簡單學生管理系統

因為實驗室要交作業然後就做了一個學生管理系統  貼個程式碼紀念一下~ 做的太急介面什麼的也比較差 還有一些小細節沒有完善不過還是能實現主要的功能的~ Window是主介面 package First; import java.sql.*; import java.aw

C語言強化——學生管理系統

next conf std info 管理系統 lis float 分享 char* 系統模塊設計 a.預處理模塊 系統在啟動時會根據配置文件裏的內容去相應文件裏去加載賬戶信息和學生信息。 b.登陸模塊 輸入用戶名和密碼,輸密碼的時候用“*” 代表用戶當前輸入的內容。

c#編寫簡單學生管理系統

心得:在查詢資料時,如果查詢的內容只是作為某個判斷的條件,直接執行用SqlCommand執行語句,如果要在Lable或者DataGirdView中顯示出來查詢的結果。此時,分兩種情況:SqlDataReader逐條查詢,SqlDataAdapter結果查詢問題:在用引數接收c

C++ 實現簡單命令行學生管理系統

什麽 cos wid 屏幕 cit 環境 iterator choice umeng C++ 實現簡單命令行學生管理系統 貼吧ID: 這把問題不大 編譯環境是macOS。system(“clear”) 在windows下請換成 system(“cls”) #include

springMVC-spring-Hibernate 開發學生管理系統簡單案例-java各檔案編寫(四)

四、java各檔案編寫 原始檔:https://download.csdn.net/download/flyingshadower/10628472 (1)工程目錄: (2)StudentEntity 利用Hibernate自動生成實體類 package com.student

C#實現簡單學生管理系統增刪改查

1.Programs.cs using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using Syste

c語言編寫學生管理系統

昨天我一高中同學讓我寫一個學生管理系統,說怎麼簡單怎麼來,其實管理系統是每個學程式設計的人必須會的程式碼,下面分享給大家。#include<stdio.h>#include<stdlib.h>#include<string.h>#inclu

c語言連結串列寫的一個簡單學生管理系統

在大學由於在學完c語言之後老師佈置了一個寫學生管理系統的課設我寫了一個簡單的學生管理 系統,話不多說,直接上原始碼。 #include<stdio.h> #include<stdlib.h> #include<string.h> char

JAVA使用GUI編寫一個簡單學生管理系統0.1版本--學生登陸介面

JAVA入門,寫的不好請多包涵,如有不懂,下方可提問,有問會必答! import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Login{ public stati

非常簡約學生管理系統——HashSet進行編寫

n) next 編寫 select bool *** 練習 ati stat 很小的一個練習,可以參考一下啊~~~~~~ 1:註意;學生類中進行多個重要方法的重寫 package com.xt.homework; public class Student {

面向對象:簡單學生管理系統

pytho 自己的 成績 姓名 學生 增刪改 文件 管理系 系統 根據需求編寫程序:   學生成績管理系統   1.根據姓名查看學生成績   2.根據科目查看學生成績   3.查看總平均分   4.根據姓名刪除學生信息   先分析需要哪些對象:   學生對象:

C語言——單鏈表——學生管理系統

鞏固了一下單鏈表的知識點,並運用單鏈表寫了個簡單的學生管理系統 實現功能:增、刪、改、查 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #includ