怎么根据查询结果创建临时表并插入数据

时间:2022-09-18 20:00:15
大家好,新手先报个到,很高兴能在这里跟大家一起交流学习。
碰到一些问题,自己不知道怎么解决,纠结两天了,很急,请大家多多帮忙,给点力啊。
先解释下要干什么,title[]这个数组里存放着一些不重复的正整数,通过这些正整数查询到qid值在这个数组里面的所有数据,得到数据之后我要创建一张临时表以userName命名,然后还要把查询到的结果存到这张临时表里面去,下面是我写的代码,当然是错误百出了,大家知道这个意思就行,然后帮忙改改吧,感激不尽!!!!
public static void CreateTable(int[] title,string userName)
    {
        string sqlWhere = "";
        for (int i=0;i<title.Length;i++)
        {
            sqlWhere+=title[i].ToString()+",";
        }
        sqlWhere=sqlWhere.Remove(sqlWhere.Length-1);
        string strSql="select * from question where qid in ("+sqlWhere+")";
        Conn.Open();
        Cmd.CommandText=strSql;
        Cmd.Connection=Conn;
        SqlDataReader dr=Cmd.ExecuteReader();
        if (dr.HasRows)
        {
            string sqlCreate = "create table "+userName+" (id int identity(1,1) primary key NOT NULL,title text not null,A text not null,B text not null,C text not null,D text not null,answer char(2) not null,result tinyint not null)";
            Cmd.Connection = Conn;
            Cmd.CommandText = sqlCreate;
            Cmd.ExecuteNonQuery();
            int i = 1;
            while (dr.Read())
            {
                string sqlInsert = "insert into" + userName + "(id,title,A,B,C,D,answer,result) values(" + i + "," + dr["qtitle"].ToString()            + "," + dr["qA"].ToString() + "," + dr["qB"].ToString() + "," + dr["qC"].ToString() + ","+ dr["qD"].ToString() + ","+dr["qanswer"]+",0)";
                Cmd.Connection = Conn;
                Cmd.CommandText = sqlInsert;
                Cmd.ExecuteNonQuery();
                i++;
            }
        }
        dr.Close();
    }

9 个解决方案

#1


有用到dataSet吗?我正在写个相似的程序,使用的是dataset,可以试试。。。

#2


代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。

#3


每个用户创建一张临时表,楼主的想法肯定有问题。

#4


引用 2 楼 sp1234 的回复:
代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。


谢谢提醒,会记住把问题描述清楚的。

#5


引用 3 楼 karascanvas 的回复:
每个用户创建一张临时表,楼主的想法肯定有问题。


具体是这样,在做一个在线测试的系统,数据库中存放着题。我要在学生点击测试的时候随机生成一套试题,然后把生成的题目显示在页面上,待测试完成之后还要完成评分的功能,所以想到了建一个临时表存放生成的题,测试完评分之后再drop掉,这只是我个人的想法,您要有什么建议话请说啊,感激不尽。我现在还不知到我的想法能不能实践通,寻求更好的方法。

#6


引用 2 楼 sp1234 的回复:
代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。

是这样子的,我有一张表里面存了选择题目和选项以及答案,我要实现在线测试的功能,希望再点击测试之后能生成一套试题,并在测试完毕点击提交之后给出评分,我的想法是点击测试之后就生成不重复的随机数,根据随机数查找试题,然后将随机生成的试题存在新建的临时表中,评分之后再drop掉。这样做的目的是方便评分,我不知道我的想法对不对,希望给予指点,谢谢。

#7


应该用单独一个表来存放生成出来的试题,表中需要有一个字段来标记是哪个用户的。

#8


引用 7 楼 karascanvas 的回复:
应该用单独一个表来存放生成出来的试题,表中需要有一个字段来标记是哪个用户的。



可是每次测试生成的题可能都不同,不同的人看到的题目也不同,相同的人下次生成的题也不同啊。

#9


引用 1 楼 sharonyshi 的回复:
有用到dataSet吗?我正在写个相似的程序,使用的是dataset,可以试试。。。



我尝试用DataSet   但是发现不会写    能给个代码参考一下吗?

#1


有用到dataSet吗?我正在写个相似的程序,使用的是dataset,可以试试。。。

#2


代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。

#3


每个用户创建一张临时表,楼主的想法肯定有问题。

#4


引用 2 楼 sp1234 的回复:
代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。


谢谢提醒,会记住把问题描述清楚的。

#5


引用 3 楼 karascanvas 的回复:
每个用户创建一张临时表,楼主的想法肯定有问题。


具体是这样,在做一个在线测试的系统,数据库中存放着题。我要在学生点击测试的时候随机生成一套试题,然后把生成的题目显示在页面上,待测试完成之后还要完成评分的功能,所以想到了建一个临时表存放生成的题,测试完评分之后再drop掉,这只是我个人的想法,您要有什么建议话请说啊,感激不尽。我现在还不知到我的想法能不能实践通,寻求更好的方法。

#6


引用 2 楼 sp1234 的回复:
代码太多,没有时间去看这么多,看到太多不想看的就更没有耐心的。你最好问题简单的问题,别人只应该给你启示,而不是答案。

是这样子的,我有一张表里面存了选择题目和选项以及答案,我要实现在线测试的功能,希望再点击测试之后能生成一套试题,并在测试完毕点击提交之后给出评分,我的想法是点击测试之后就生成不重复的随机数,根据随机数查找试题,然后将随机生成的试题存在新建的临时表中,评分之后再drop掉。这样做的目的是方便评分,我不知道我的想法对不对,希望给予指点,谢谢。

#7


应该用单独一个表来存放生成出来的试题,表中需要有一个字段来标记是哪个用户的。

#8


引用 7 楼 karascanvas 的回复:
应该用单独一个表来存放生成出来的试题,表中需要有一个字段来标记是哪个用户的。



可是每次测试生成的题可能都不同,不同的人看到的题目也不同,相同的人下次生成的题也不同啊。

#9


引用 1 楼 sharonyshi 的回复:
有用到dataSet吗?我正在写个相似的程序,使用的是dataset,可以试试。。。



我尝试用DataSet   但是发现不会写    能给个代码参考一下吗?