当前位置:编程学习 > C#/ASP.NET >>

求个学生信息管理系统。

  搞了一个多星期没搞出来。。郁闷 那位先生女士帮帮忙。。谢谢了。。
我的Q85980847  邮箱 85980847@qq.com 
要求如下:
1.新建网站:Student
2.选择视图-》服务器资源管理器-》右击数据连接-》新建SQL server 数据库:Student;
3.新建数据表Class、Administrator、Department、StudentInfo、Speciality、Course、Score、Teacher和Teaching,建好表之后要往表里插入实验性的记录,记录内容自己定:
Class表(班级信息表):
列名 类型 是否主键 是否允许空 说明
classID char(9) 是 班级ID
classname varchar(50) 班级名称
grade char(4) 年级
departmentID char(3) 系部ID
specialityID char(1) 专业ID
monitorname varchar(50) 是 班长姓名
mastername varchar(50) 是 班主任姓名

Administrator表(管理员表,用于登录):
列名 类型 是否主键 是否允许空 说明
userID int,变成自增标识 是 用户ID
username varchar(50) 用户名
password char(10) 密码

Department表:
列名 类型 是否主键 是否允许空 说明
departmentID char(3) 是 系部ID
departmentname varchar(50) 系部名称
departmenthead char(10) 是 系主任姓名

StudentInfo表:
列名 类型 是否主键 是否允许空 说明
studentID char(11) 是 学号
studentname varchar(50) 姓名
易做图 char(2) 性别
birthday smalldatetime 是 出生日期
hometown varchar(50) 是 籍贯
departmentID char(3) 系部ID
specialityID char(1) 专业ID
classID char(9) 班级ID
credit tinyint,默认值设为0 学分
entrancedate smalldatetime 是 入学时间
telephone char(11) 是 电话
address varchar(50) 是 家庭地址
remark varchar(50) 是 备注

Speciality表(专业名称表)
列名 类型 是否主键 是否允许空 说明
specialityID char(1) 是 专业ID
specialityname char(20) 专业名称
departmentID char(3) 系部ID

Course表(课程表)
列名 类型 是否主键 是否允许空 说明
courseID char(6) 是 课程ID,系部ID+专业ID+2位课程码
coursename char(20) 课程名称
credit tinyint,默认值设为2 该课程所占的学分
term tinyint 哪个学期
departmentID char(3) 系部ID
specialityID char(1) 专业ID

Score表(成绩表,记录学期-系部-专业-班级-学生-课程-分数-取得学分)
列名 类型 是否主键 是否允许空 说明
serialID int,变成自增标识 是 序列号
term tinyint 哪个学期
departmentID char(3) 系部ID
specialityID char(1) 专业ID
classID char(9) 班级ID
studentID char(11) 学号
courseID char(6) 课程ID
score tinyint 考试分数
credit tinyint,默认值设为2 该课程所占的学分
查询:1.指定学期、班级、课程
2.指定学期、学号
3.指定学期、课程、教师
4.查不及格名单:指定学期、系部,条件:score<60,按班级排序
Teacher表(教师信息表)
列名 类型 是否主键 是否允许空 说明
teacherID char(5) 是 教师ID
teachername varchar(50) 教师姓名
departmentID char(3) 系部ID

Teaching表(教师授课信息表)
列名 类型 是否主键 是否允许空 说明
serialID int,变成自增标识 是 序列号
term tinyint 哪个学期
courseID char(6) 课程ID
teacherID char(11) 教师ID
classID char(9) 班级ID

4.在服务器资源管理器中右击存储过程-》新建存储过程,
查找学生的:
CREATE PROCEDURE procSelectStudentByName
(
@classname varchar(50),
@studentname varchar(50)
)
AS
select * from StudentInfo,Class where StudentInfo.classID=Class.classID and Class.classname=@classname and studentname like '%' + @studentname +'%'
RETURN
通过学号来查找:
CREATE  PROCEDURE procSelectStudentByID 
(
@studentID char(11)
)
AS
select * from StudentInfo,Class where StudentInfo.classID=Class.classID and studentID=@studentID
RETURN
5.在web.config文件中添加适合本机的连接字符串:
需要添加加了底纹的部分,原来可能是<connectionStrings/>,把它改成现在这样,另外,Data Source=KEVINXSM82\SQLEXPRESS这句要改成本机的,可以尝试用英文的句点代替主机名,变成这样Data Source=.\SQLEXPRESS。
有个简便的方法,在服务器资源管理器中右击新建的数据库-》修改连接-》点击高级-》在最底下有个灰色的框,里面就是我们要的连接字符串。
<configuration>(这个已经有了,不要再添加)
<appSettings/>(这个已经有了,不要再添加)
  <connectionStrings>
    <add name="connStr" connectionString="Data Source=KEVINXSM82\SQLEXPRESS;Initial Catalog=Student;Integrated Security=True;Pooling=False"/>
  </connectionStrings>
<system.web>。。。。(省略,这些不用加)
6.建立公共类DB.cs,作用是在其他页面来引用相同的数据库连接、执行命令、获取数据等操作,这样可以减少工作量,并且以后若要修改数据库连接,就只需要在这个文件里修改就好了,别的文件可以不用修改,维护起来很方便。
在解决方案资源管理器里右击网站-》添加新项-》类,命名为DB.cs,添加如下代码(以//开头的是注释,可以不用添加):
using System;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;//数据库操作需引入的命名空间
using System.Configuration;//为引用Web.config文件的内容需要引入该命名空间

/// <summary>
/// DB 的摘要说明
/// </summary>
public class DB
{
    public DB()
    {
        //
        // TODO: 在此处添加构造函数逻辑
        //
    }

    /// <summary>
    /// 连接数据库
    /// </summary>
    /// <returns>返回SqlConnection对象</returns>
    public SqlConnection GetCon()
    {
        return new SqlConnection(ConfigurationManager.ConnectionStrings["connStr"].ToString());
    }

    /// <summary>
    /// 执行SQL语句
    /// </summary>
    ///<param name="cmdstr">SQL语句</param>
    /// <returns>返回值为int型:成功返1,失败返回0</returns>
    public int sqlEx(string cmdstr)
    {
        SqlConnection con = GetCon();//连接数据库
        con.Open();//打开连接
        SqlCommand cmd = new SqlCommand(cmdstr, con);
        try
        {
            cmd.ExecuteNonQuery();//执行SQL 语句并返回受影响的行数
            return 1;//成功返回1
        }
        catch (Exception e)
        {
            return 0;//失败返回0
        }
        finally
        {
            con.Dispose();//释放连接对象资源
        }
    }

    /// <summary>
    /// 执行SQL查询语句
    /// </summary>
    /// <param name="cmdstr">查询语句</param>
    /// <returns>返回DataTable数据表</returns>
    public DataTable reDt(string cmdstr)
    {
        SqlConnection con = GetCon();
        SqlDataAdapter da = new SqlDataAdapter(cmdstr, con);
        DataSet ds = new DataSet();
        da.Fill(ds);
        return (ds.Tables[0]);
    }
    /// <summary>
    /// 执行SQL查询语句
    /// </summary>
    /// <param name="str">查询语句</param>
    /// <returns>返回SqlDataReader对象dr</returns>
    public SqlDataReader reDr(string str)
    {
        SqlConnection conn = GetCon();//连接数据库
        conn.Open();//并打开了连接
        SqlCommand com = new SqlCommand(str, conn);
        SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
        return dr;//返回SqlDataReader对象dr
    }
    
}
7.新建登录页面Login.aspx
 
注意文本框和按钮的ID
Login.aspx.cs文件的代码(一定要把控件ID改成你自己定的):
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void btnLogin_Click(object sender, EventArgs e)
    {
        //实例化公共类对象
        DB db = new DB();
        string userName = this.txtName.Text.Trim();
        string passWord = this.txtPwd.Text.Trim();//对密码进行加密处理
        //获取用户信息
        SqlDataReader dr = db.reDr("select * from Administrator where username='" + userName + "' and password='" + passWord + "'");
        dr.Read();
        if (dr.HasRows)//通过dr中是否包含行判断用户是否通过身份验证
        {
            Session["UserID"] = dr.GetValue(0);//将该用户的ID存入Session["UserID"]中
            Response.Redirect("~/index.aspx");//跳转到主页
        }
        else
            lblMessage.Text = "登录失败!";
        dr.Close();
             
    }
}
8.新建页面index.aspx,在里面输入一些标识文字,然后运行Login.aspx。
--------------------编程问答-------------------- 都这么详细了!自己写写不就完了! --------------------编程问答-------------------- 这么长差不多了 友情帮顶 --------------------编程问答-------------------- 建实体类model。使用DAL,BLL到51aspx.com里看看。 --------------------编程问答-------------------- 我也是这么认为的。楼主,差不多了。 --------------------编程问答-------------------- 3楼大哥说的对,用工厂模式或者三层都可以,Model(实体类)DAL(数据访问层)BLL(业务逻辑层)Web/窗体(表示层) --------------------编程问答-------------------- 送你个SqlHelper类using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Reflection;

namespace BBSDAL
{
    /// <summary>
    /// 数据库访问类
    /// </summary>
    public static class SqlHelper
    {
        #region 变量
        /// <summary>
        /// 数据库连接对象
        /// </summary>
        private static SqlConnection _con = null;
        /// <summary>
        /// 程序集的名称
        /// </summary>
        ///private static string _assemblyName = "Entity";
        // 在web.config配置文件中添加连库字符串
        // <connectionStrings>
    //     <add name="constr" connectionString="Data Source=.\TC2005;uid=sa;pwd=;Initial Catalog=BBSDB" providerName="System.Data.Client"/>
        // </connectionStrings>
        //public static string constr = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;//从配置文件里读取数据库连库字符串
        public static string constr = @"Data Source=.;uid=sa;pwd=;Initial Catalog=bbs";
        
        #endregion

        #region 属性

        /// <summary>
        /// 获取或设置数据库连接对象
        /// </summary>
        public static SqlConnection Con
        {
            get
            {
                if (SqlHelper._con == null)
                {
                    SqlHelper._con = new SqlConnection();
                }
                if (SqlHelper._con.ConnectionString == "")
                {
                    SqlHelper._con.ConnectionString = SqlHelper.constr;
                }
                return SqlHelper._con;
            }
            set
            {
                SqlHelper._con = value;
            }
        }
        #endregion

        #region 方法

        /// <summary>
        /// 执行返回一行一列的数据库操作
        /// </summary>
        /// <param name="commandText">SQL语句或存储过程名</param>
        /// <param name="commandType">SQL命令类型</param>
        /// <param name="param">SQL命令参数数组</param>
        /// <returns>第一行第一列的记录</returns>
        public static int ExecuteScalar(string commandText,CommandType commandType, params SqlParameter[] param)
        {
            int count = 0;
            using (SqlHelper.Con)
            {
                using (SqlCommand cmd = new SqlCommand(commandText, SqlHelper.Con))
                {
                    try
                    {
                        cmd.CommandType = commandType;
                        cmd.Parameters.AddRange(param);
                        SqlHelper.Con.Open();
                        count = Convert.ToInt32(cmd.ExecuteScalar());
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }

            }
            return count;
        }

        /// <summary>
        /// 执行不查询的数据库操作
        /// </summary>
        /// <param name="commandText">SQL语句或存储过程名</param>
        /// <param name="commandType">SQL命令类型</param>
        /// <param name="param">SQL命令参数数组</param>
        /// <returns>受影响的行数</returns>
        public static int ExecuteNonQuery(string commandText, CommandType commandType, params SqlParameter[] param)
        {
            int result = 0;
            using (SqlHelper.Con)
            {
                using (SqlCommand cmd = new SqlCommand(commandText, SqlHelper.Con))
                {
                    try
                    {
                        cmd.CommandType = commandType;
                        cmd.Parameters.AddRange(param);
                        SqlHelper.Con.Open();
                        result = cmd.ExecuteNonQuery();
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }

            }
            return result;
        }

        /// <summary>
        /// 执行返回一条记录的泛型对象
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="reader">只进只读对象</param>
        /// <returns>泛型对象</returns>
        private static T ExecuteDataReader<T>(IDataReader reader)
        {
            T obj = default(T);
            try
            {
                Type type = typeof(T);
                obj = (T)Activator.CreateInstance(type);//从当前程序集里面通过反射的方式创建指定类型的对象
                //obj = (T)Assembly.Load(SqlHelper._assemblyName).CreateInstance(SqlHelper._assemblyName + "." + type.Name);//从另一个程序集里面通过反射的方式创建指定类型的对象
                PropertyInfo[] propertyInfos = type.GetProperties();//获取指定类型里面的所有属性
                foreach (PropertyInfo propertyInfo in propertyInfos)
                {
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        string fieldName = reader.GetName(i);
                        if (fieldName.ToLower() == propertyInfo.Name.ToLower())
                        {
                            object val = reader[propertyInfo.Name];//读取表中某一条记录里面的某一列信息
                            if (val != null && val != DBNull.Value)
                                propertyInfo.SetValue(obj, val, null);//给对象的某一个属性赋值
                            break;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return obj;
        }

        /// <summary>
        /// 执行返回一条记录的泛型对象
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="commandText">SQL语句或存储过程名</param>
        /// <param name="commandType">SQL命令类型</param>
        /// <param name="param">SQL命令参数数组</param>
        /// <returns>实体对象</returns>
        public static T ExecuteEntity<T>(string commandText, CommandType commandType, params SqlParameter[] param)
        {
            T obj = default(T);
            using (SqlHelper.Con)
            {
                using (SqlCommand cmd = new SqlCommand(commandText, SqlHelper.Con))
                {
                    cmd.CommandType = commandType;
                    cmd.Parameters.AddRange(param);
                    SqlHelper.Con.Open();
                    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    while (reader.Read())
                    {
                        obj = SqlHelper.ExecuteDataReader<T>(reader);
                    }
                }
            }
            return obj;
        }

        /// <summary>
        /// 执行返回多条记录的泛型集合对象
        /// </summary>
        /// <typeparam name="T">泛型类型</typeparam>
        /// <param name="commandText">SQL语句或存储过程名</param>
        /// <param name="commandType">SQL命令类型</param>
        /// <param name="param">SQL命令参数数组</param>
        /// <returns>泛型集合对象</returns>
        public static List<T> ExecuteList<T>(string commandText, CommandType commandType, params SqlParameter[] param)
        {
            List<T> list = new List<T>();
            using (SqlHelper.Con)
            {
                using (SqlCommand cmd = new SqlCommand(commandText, SqlHelper.Con))
                {
                    try
                    {
                        cmd.CommandType = commandType;
                        cmd.Parameters.AddRange(param);
                        SqlHelper.Con.Open();
                        SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                        while (reader.Read())
                        {
                            T obj = SqlHelper.ExecuteDataReader<T>(reader);
                            list.Add(obj);
                        }
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }
            return list;
        }
        #endregion

    }
}
--------------------编程问答-------------------- 帮顶
--------------------编程问答-------------------- 网上很多的1 --------------------编程问答-------------------- 帮我搞个啊美女。。谢谢了。 --------------------编程问答-------------------- 课程设计都做烂的东西 --------------------编程问答-------------------- 给点钱,我给你做 --------------------编程问答-------------------- 我的QQ 117050774 --------------------编程问答-------------------- http://download.csdn.net/source/2855069
这个资源不错 --------------------编程问答-------------------- 51aspx。。。。http://www.51aspx.com/CV/studentPFSystem/
补充:.NET技术 ,  非技术区
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,