往数据库插入不了数据,而且很奇怪,同一个页面,能插入试卷的选择信息,但插入不了考试成绩?我看不出是什么原因,请高手帮帮忙!!!!
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Student_Test : System.Web.UI.Page
{
    string EID = "";
    protected void Page_Load(object sender, EventArgs e)
    {
        this.labstu.Text = Session["user"].ToString();
        
        if (Request["ExamID"] == null)
        {
            Response.Write("<script lanuage=javascript>alert('准备考试!');window.location.href='Examlist.aspx';</script>");        }
        else
        {
            EID = Request["ExamID"].ToString();        }
        if (!IsPostBack)
        {
            InitData();
        }    }
    //初始化试卷,从数据库中将试题取出
    protected void InitData()
    {
        BaseDBControl dbContol = new BaseDBControl();
        string sql = "select SingleProblem.ID,SChoosePoint,ExamName,questionText,chooseA,chooseB,chooseC,chooseD ,answer from WorkExam,SingleProblem,ExamInfo where SingleProblem.ID=TitleID and ExamInfo.ExamID='" + EID + "' and ExamInfo.ExamID=WorkExam.ExamID";
        DataTable dr = dbContol.returnDataTableList(sql);
        this.GridView1.DataSource = dr;
        this.GridView1.DataBind();
        SqlDataReader ds = dbContol.DataExecuteReader(sql);
        if (ds.Read())
        {
            this.lblExamName.Text = ds["ExamName"].ToString();
        }        //绑定操作题数据
        BaseDBControl dbContol1 = new BaseDBControl();
        string sql1 = "select Application.ID, ApplicationPoint,questionText,answer from WorkExam,Application,ExamInfo where Application.ID=TitleID and ExamInfo.ExamID='" + EID + "'and ExamInfo.ExamID=WorkExam.ExamID";
        DataTable dr1 = dbContol1.returnDataTableList(sql1);
        this.GridView5.DataSource = dr1;
        this.GridView5.DataBind();
    }
    //提交试卷
    protected void imgBtnSubmit_Click(object sender, ImageClickEventArgs e)
    {
        int paperid = Convert.ToInt32(EID);
        BaseDBControl db = new BaseDBControl();
        int score = 0;
        int single1 = int.Parse(((Label)GridView1.Rows[0].FindControl("Label4")).Text);//取出单选题的每题分值
        foreach (GridViewRow dr in GridView1.Rows)//对单选题每题进行判断用户选择答案
        {
             string str= "";
            if (((RadioButton)dr.FindControl("AAA")).Checked)
            {
                str = "A";
            }
            else if (((RadioButton)dr.FindControl("BBB")).Checked)
            {
                str = "B";            }
            else if (((RadioButton)dr.FindControl("CCC")).Checked)
            {
                str = "C";            }
            else if (((RadioButton)dr.FindControl("DDD")).Checked)
            {
                str = "D";
            }
            if (((Label)dr.FindControl("Label8")).Text.Trim() == str)//将用户选择结果和答案进行比较
            {
                score = score + single1;
            }
            string OK = "等待评卷";
            string Score = "insert into Score(stuID,ExamID,SCscore,OK,ExamTime) values('" + labstu.Text + "','" + paperid + "','" + score + "','" + OK + "'," + DateTime.Now.ToString() + "')";
            db.DataNonExecuteQuery(Score);
        }
        //上面是插入选择题自动评分的成绩, 但没有
        // 这部分是插入学生操作题的答题情况,已经成功实现        int App = int.Parse(((Label)GridView5.Rows[0].FindControl("Label37")).Text);//取出操作题每题分值
        foreach (GridViewRow dr in GridView5.Rows)
        {
            string str1 = "";
            str1 = ((TextBox)dr.FindControl("TextBox1")).Text.Trim();
            int titleid = int.Parse(((Label)dr.FindControl("Label44")).Text);
            int nid = int.Parse(((Label)dr.FindControl("Label33")).Text);
            string Que = "insert into StuAnswer(stuID,ExamID,Type,TitleID,NID,Mark,StuAnswer,ExamTime) values('" + labstu.Text + "','" + paperid + "','操作题','" + nid + "','" + titleid + "','" + App + "','" + str1 + "','" + DateTime.Now.ToString() + "')";
            db.DataNonExecuteQuery(Que);                
              }
        Response.Write("<script lanuage=javascript>alert('提交试卷成功!');window.location.href='TestScore.aspx';</script>");    }}
//上面是插入选择题自动评分的成绩, 但没有
// 这部分是插入学生操作题的答题情况,已经成功实现请高手们看看,是不是哪里出问题了,我在SQL中插入是没有问题的,所以应该不是insert语句的原因

解决方案 »

  1.   

    打印出你的Score 这个sql语句看是否正确,包括字段类型,不是字符类型、日期类型的不要加引号
      

  2.   

    string Score = "insert into Score(stuID,ExamID,SCscore,OK,ExamTime) values('" + labstu.Text + "','" + paperid + "','" + score + "','" + OK + "','" + DateTime.Now.ToString() + "')";缺少单引号,如果ExamID是数字,应该写成
    ," + paperid + "
    而不是
    ,'" + paperid + "'其他字段类似