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

📄 transitionquestion.cs

📁 多线程导入数据,代进度条,本程序是.net语言编写,可以参考其中的例子
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.jdTools;
using Transition.Config;

namespace Transition.Question
{
    //eid -->分类  
    //type-->试题类型(1判断 2单选 3多选 4流程 0问答)
    public class TransitionQuestion
    {
        public static int GetOldTotalCount() {
            myDataBase db = oldDataBase.getDataBase();
            string sql = "select count(*) from examquestion where deleted=0";
            return db.GetFirstInt(sql);
        }
        private static SqlDataReader GetOldDataReader(int start, int count) 
        {
            string sql = string.Format("select top {0} qid, eid, problem, type, reference, grade,difficulty from examquestion where deleted=0 and qid not in (select top {1} qid from examquestion where deleted=0 order by qid) order by qid", count, start);
            myDataBase db = oldDataBase.getDataBase();
            return db.GetDataReader(sql);
        }
        public static void InToNew(int start, int count)
        {
            SqlDataReader dr = GetOldDataReader(start, count);
            while (dr.Read())
            {
                string sql = "insert into jd_Question(jd_QuestionTitle, jd_QuestionOption, jd_QuestionAnswer, jd_QuestionScore, jd_QuestionAccessTime, jd_qTypeID,jd_QuestionDifficulty,jd_QuestionOID)";
                sql += "values(@QuestionTitle, @QuestionOption, @QuestionAnswer, @QuestionScore, @QuestionAccessTime, @qTypeID,@QuestionDifficulty,@QuestionOID)";
                SqlParameter[] parames ={
                    myDataBase.CreateParameter("QuestionTitle",SqlDbType.NVarChar,200,dr["problem"]==null?"":((string)dr["problem"]).Trim()),
                    myDataBase.CreateParameter("QuestionOption",SqlDbType.NVarChar,200,GetOption((int)dr["qid"])),
                    myDataBase.CreateParameter("QuestionAnswer",SqlDbType.NVarChar,200,dr["reference"]==null?"":((string)dr["reference"]).Trim()),
                    myDataBase.CreateParameter("QuestionScore",SqlDbType.Int,4,(int)dr["grade"]),
                    myDataBase.CreateParameter("QuestionAccessTime",SqlDbType.DateTime,8,DateTime.Now),
                    myDataBase.CreateParameter("qTypeID",SqlDbType.Int,4,GetqTypeID((int)dr["type"])),
                    myDataBase.CreateParameter("QuestionDifficulty",SqlDbType.Int,4,(int)dr["difficulty"]),
                    myDataBase.CreateParameter("QuestionOID",SqlDbType.Int,4,(int)dr["qid"])
                };
                myDataBase db = newDataBase.getDataBase();
                db.RunSql(sql, parames);
                SetClassPoint((int)dr["qid"]);
            }
            dr.Dispose();
        }

        //获取指定题目的选项
        private static string GetOption(int qid)
        {
            myDataBase db = oldDataBase.getDataBase();
            string sql = "select cid+'<jd>'+content from questiondetail where qid=@qid";
            SqlParameter[] parames ={
                myDataBase.CreateParameter("qid",SqlDbType.Int,4,qid)
            };
            SqlDataReader dr = db.GetDataReader(sql, parames);
            string result = "";
            while (dr.Read())
            {
                result += (string)dr[0] + ">jd<";
            }
            if (result != "")
                result = ">jd<" + result;
            return result;
        }
        
        /// <summary>
        /// 试题类型(1判断-4 2单选-1 3多选-2 4流程-3 0问答-5)
        /// </summary>
        /// <param name="qid"></param>
        /// <returns></returns>
        private static int GetqTypeID(int type)
        {
            int result = 5;
            switch (type)
            {
                case 1:
                    result = 4;
                    break;
                case 2:
                    result = 1;
                    break;
                case 3:
                    result = 2;
                    break;
                case 4:
                    result = 3;
                    break;
                case 5:
                    result = 5;
                    break;
                default:
                    result=5;
                    break;
            }
            return result;
        }


        private static void SetClassPoint(int qid)
        {
            myDataBase db = newDataBase.getDataBase();
            //先得到所属考点在新系统上的考点ID
            string sql = "insert into jd_qPoint(jd_qClassPointID,jd_QuestionID) ";
            sql += "select jd_qClassPoint.jd_qClassPointID, ";
            sql += "( ";
            sql += "select jd_Question.jd_QuestionID ";
            sql += "from jd_Question ";
            sql += "where jd_QuestionOID=@qid ";
            sql += ") as jd_QuestionID ";
            sql += " from Examination.dbo.exam_point_ques ";
            sql += "inner join jd_qClassPoint on jd_qClassPointOID=pointid ";
            sql += "where qid=@qid";
            SqlParameter[] parms ={
                myDataBase.CreateParameter("qid",SqlDbType.Int,4,qid)
            };
            db.RunSql(sql, parms);
        }

    }
}

⌨️ 快捷键说明

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