⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapdatabase.cs

📁 实现课程表编排和打印功能,通过在候选列表中选择课程和教师(没有被排课且该教师教授所选择的课程)来完成排课,代码约8000行
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.OleDb;

namespace 课程安排
{
    public static class MapDatabase
    {
        private static DataSet dataset = null;

        //  将数据库中的数据转换成相应的对象
        public static bool CreateSchoolInfo()
        {
            return false;
        }

        public static bool SaveSchoolInfo()
        {
            return false;
        }


    }

    #region 数据库操作接口
    public interface IDataOperate
    {
        string ConnectionString { get;set;}

        DataTable Search(string sql);
        DataTable QueryParameterSQL(string ParameterSQL, object[] values);
        DataTable QueryTable(string sql, string name);
        int UpdateTable(string sql, DataTable dt);
        int UpdateParameterSQL(string ParameterSQL, object[] values);
        int ClearTable(string tableName);

        bool ExcuteTransction(IList<string> sqls, IList<DataTable> dts);
    }

    public static class DataBaseFactory
    {
        public static IDataOperate CreateAccessOperate()
        {
            IDataOperate d = new AccessOperate();
            return d;
        }
    }
    #endregion

    #region Access数据库操作
    public class AccessOperate : IDataOperate
    {
        private string connectionString;
        public string ConnectionString
        {
            get
            {
                return connectionString;
            }
            set
            {
                connectionString = value;
            }
        }

        public AccessOperate()
        {
            // 设置默认连接字符串
            this.connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "\\课程安排.mdb";
        }

        private OleDbConnection GetConn()
        {
            OleDbConnection con = null;
            try
            {
                con = new OleDbConnection(this.connectionString);
                con.Open();
            }
            catch (Exception ex)
            {
            }
            return con;
        }

        public DataTable Search(string sql)
        {
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(sql, conn);
            OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);

            DataTable dsSales = new DataTable();
            ocmd.CommandType = CommandType.Text;
            oda.Fill(dsSales);
            conn.Close();
            return dsSales;
        }
        public DataTable QueryParameterSQL(string ParameterSQL, object[] values)
        {
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(ParameterSQL, conn);
            DataTable dsSales = new DataTable();
            try
            {
                string err = BuildAccessParameter(ocmd, ParameterSQL, values);
                OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);
                ocmd.CommandType = CommandType.Text;
                oda.Fill(dsSales);
            }
            catch (Exception ex)
            {
                
            }
            finally
            {
                conn.Close();
            }
            return dsSales;
        }
        private string BuildAccessParameter(OleDbCommand command, string ParameterSQL, object[] values)
        {
            //分析sql中的参数,进行赋值
            int pos = 0;
            int i = 0;
            string temp = ParameterSQL;
            pos = temp.IndexOf('?');
            string error = "";
            try
            {
                while (pos > 0)
                {
                    temp = temp.Substring(pos + 1);


                    string parameterName = "param" + i;
                    //赋值
                    //...

                    InsertOraParameter(command, parameterName, values[i]);
                    i++;
                    //下一个位置
                    pos = temp.IndexOf('?');

                }
            }
            catch (Exception ex)
            {
                error += ex.Message;
            }
            return error;
        }
        private void InsertOraParameter(OleDbCommand command, string parameterName, object value)
        {

            OleDbParameter parameter = command.CreateParameter();

            parameter.Direction = ParameterDirection.Input;
            parameter.ParameterName = parameterName;
            parameter.Value = value;
            command.Parameters.Add(parameter);
        }
        public DataTable QueryTable(string sql, string name)
        {
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(sql, conn);
            OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);

            DataTable dsSales = new DataTable();
            ocmd.CommandType = CommandType.Text;
            oda.Fill(dsSales);
            dsSales.TableName = name;
            conn.Close();
            return dsSales;
        }
        public int UpdateTable(string sql, DataTable dt)
        {
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(sql, conn);
            OleDbDataAdapter oda = new OleDbDataAdapter(ocmd);
            OleDbCommandBuilder builder = new OleDbCommandBuilder(oda);
            ocmd.CommandType = CommandType.Text;
            int r = oda.Update(dt);
            conn.Close();
            return r;
        }
        public int ClearTable(string tableName)
        {
            string sql = "delete from " + tableName;
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(sql, conn);
            int r = ocmd.ExecuteNonQuery();
            conn.Close();
            return r;
        }
        public int UpdateParameterSQL(string ParameterSQL, object[] values)
        {
            OleDbConnection conn = GetConn();
            OleDbCommand ocmd = null;
            ocmd = new OleDbCommand(ParameterSQL, conn);

            Int32 r = 0;

            try
            {
                string err = BuildAccessParameter(ocmd, ParameterSQL, values);
                r = ocmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {

            }
            finally
            {
                conn.Close();
            }
            return r;
        }
        public bool ExcuteTransction(IList<string> sqls, IList<DataTable> dts)
        {
            return false;
        }
    }


    #endregion

    #region SqlServer数据库操作
    public class SqlServerOperate : IDataOperate
    {
        private string connectionString;
        public string ConnectionString
        {
            get
            {
                return connectionString;
            }
            set
            {
                connectionString = value;
            }
        }

        public DataTable Search(string sql)
        {
            return new DataTable();
        }
        public DataTable QueryParameterSQL(string ParameterSQL, object[] values)
        {
            return new DataTable();
        }
        public DataTable QueryTable(string sql, string name)
        {
            return new DataTable();
        }
        public int UpdateTable(string sql, DataTable dt)
        {
            return 0;
        }
        public int UpdateParameterSQL(string ParameterSQL, object[] values)
        {
            return 0;
        }
        public int ClearTable(string tableName)
        {
            return 0;
        }
        public bool ExcuteTransction(IList<string> sqls, IList<DataTable> dts)
        {
            return false;
        }
    }
    #endregion
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -