111,120
社区成员
发帖
与我相关
我的任务
分享
protected void rpt_Question_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
string sQN_ID = tb_QNID.Text;
string sQNVersion = tb_QNVersion.Text;
double dQNVersion = double.Parse(sQNVersion);
int iQN_ID = int.Parse(sQN_ID);
CheckBoxList cb = (CheckBoxList)e.Item.FindControl("cb");
cb.RepeatColumns = 4;
cb.CellPadding = 10;
RadioButtonList rb = (RadioButtonList)e.Item.FindControl("rb");
rb.RepeatColumns = 4;
rb.CellPadding = 10;
TextBox tb = (TextBox)e.Item.FindControl("tb");
Repeater rpt = (Repeater)e.Item.FindControl("rpt_Blank");
DataRowView rowv = (DataRowView)e.Item.DataItem;
//提取问题编号和问题类型
string sQN_Order = rowv["Q_ID"].ToString();
string sQN_Type = rowv["T_ID"].ToString();
DataSet ds = new DataSet();
using (OracleConnection conn = new OracleConnection(sConnectionString))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
OracleDataAdapter da1 = new OracleDataAdapter("SELECT * FROM Q_OPTION WHERE QN_ID = \'" + iQN_ID + "\' AND QN_VERSION = \'" + dQNVersion + "\' AND Q_ID = \'" + sQN_Order + "\' AND Q_ID_A = '0' ORDER BY O_ORDER", conn);
OracleDataAdapter da2 = new OracleDataAdapter("SELECT * FROM QUESTION WHERE QN_ID = \'" + iQN_ID + "\' AND QN_VERSION = \'" + dQNVersion + "\' AND Q_ID = \'" + sQN_Order + "\' AND Q_ID_A <> '0' ORDER BY Q_ID_A", conn);
da1.Fill(ds, "question");
da2.Fill(ds,"blank");
ds.Tables[0].Columns.Add("IDName", typeof(string), "O_ID + '、' + O_OPtion + '' ");
switch (Convert.ToInt32(sQN_Type))
{
case 1:
rb.Visible = true;
cb.Visible = false;
tb.Visible = false;
rb.DataSource = ds.Tables[0];
rb.DataTextField = "IDName";
rb.DataValueField = "O_ID";
rb.DataBind();
cmd.CommandText = "SELECT O_OPTION FROM Q_OPTION WHERE O_ID = 'a' AND QN_ID = \'" + iQN_ID + "\' AND QN_VERSION = \'" + dQNVersion + "\' AND Q_ID = \'" + sQN_Order + "\' AND Q_ID_A = '0'";
Object oOption = cmd.ExecuteScalar();
if (oOption == null)
{
tb.Visible = false;
}
else
{
tb.Visible = true;
}
break;
case 2:
rb.Visible = false;
cb.Visible = true;
tb.Visible = false;
cb.DataSource = ds.Tables[0];
cb.DataTextField = "IDName";
cb.DataValueField = "O_ID";
cb.DataBind();
cmd.CommandText = "SELECT O_OPTION FROM Q_OPTION WHERE O_ID = 'a' AND QN_ID = \'" + iQN_ID + "\' AND QN_VERSION = \'" + dQNVersion + "\' AND Q_ID = \'" + sQN_Order + "\' AND Q_ID_A = '0'";
Object oOptionM = cmd.ExecuteScalar();
if (oOptionM == null)
{
tb.Visible = false;
}
else
{
tb.Visible = true;
}
break;
case 3:
tb.Visible = false;
rb.Visible = false;
cb.Visible = false;
rpt.Visible = true;
rpt.DataSource = ds.Tables[1];
rpt.DataBind();
break;
}
}
protected void btn_Sure_Click(object sender, EventArgs e)
{
//ConfrimRule();
string sQN_ID = tb_QNID.Text;
string sQNVersion = tb_QNVersion.Text;
double dQNVersion = double.Parse(sQNVersion);
int iQN_ID = int.Parse(sQN_ID);
//先把数据写入答卷库
using (OracleConnection conn = new OracleConnection(sConnectionString))
{
conn.Open();
DataSet ds = new DataSet();
using (OracleCommand cmd = new OracleCommand())
{
cmd.Connection = conn;
string s_ID = tb_ID.Text.Trim();//员工编号
//员工编号必须为数据库中编号,不允许为空
OracleDataAdapter da = new OracleDataAdapter("SELECT * FROM QN_USER WHERE U_ID = \'" + s_ID + "\'", conn);
da.Fill(ds, "user");
if (ds.Tables[0].Rows.Count < 1)
{
Response.Write("<script>alert('该调查员不存在,请重新输入!')</script>");
Server.Transfer("FillIn.aspx?QNID=" + sQN_ID + "&QNVersion=" + sQNVersion);
}
else
{
//编号自动生成,按照顺序依次生成
string sMaxID = "";
int iMaxID = 0;
cmd.CommandText = "SELECT max (AS_ID) FROM ANSWER_SHEET WHERE QN_ID = \'" + iQN_ID + "\' AND QN_VERSION = \'" + dQNVersion + "\'";
Object O = cmd.ExecuteScalar();
sMaxID = O.ToString();
if (sMaxID.Length == 0)
iMaxID = 1;
else
{
iMaxID = int.Parse(sMaxID);
iMaxID++;
}
cmd.CommandText = "INSERT INTO ANSWER_SHEET VALUES (\'" + iQN_ID + "\',\'" + dQNVersion + "\',\'" + iMaxID + "\',\'" + s_ID + "\',\'" + Session["UserID"].ToString() + "\',\'" + DateTime.Now.ToString() + "\','','' ,'0','')";
cmd.ExecuteNonQuery();
tb_ASID.Text = iMaxID.ToString();
}
}
}
//把答案写入答卷,基于答题规则的写入
string cb = "";//复选框
string rb = "";//单选框
int i = 1;//题目数量
foreach (RepeaterItem item in this.rpt_Question.Items)
{
CheckBoxList cb1 = (CheckBoxList)item.FindControl("cb");
RadioButtonList rb1 = (RadioButtonList)item.FindControl("rb");
TextBox tb1 = (TextBox)item.FindControl("tb");
Repeater rpt = (Repeater)item.FindControl("rpt_Blank");
using (OracleConnection conn = new OracleConnection(sConnectionString))
{
conn.Open();
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
//多选框
if (cb1.Visible == true)
{
string sASID = tb_ASID.Text;
int iASID = int.Parse(sASID);
for (int j = 0; j < cb1.Items.Count; j++)
{
if (cb1.Items[j].Selected == true)
{
cb += cb1.Items[j].Value + ",";
}
}
cmd.CommandText = "INSERT INTO AS_ANSWER VALUES (\'" + iQN_ID + "\',\'" + dQNVersion + "\',\'" + iASID + "\',\'" + i + "\','0',\'" + cb + "\','')";
cmd.ExecuteNonQuery();
}
//单选框
if (rb1.Visible == true)
{
string sASID = tb_ASID.Text;
int iASID = int.Parse(sASID);
for (int j = 0; j < rb1.Items.Count; j++)
{
if (rb1.Items[j].Selected == true)
{
rb = rb1.Items[j].Value;
}
}
cmd.CommandText = "INSERT INTO AS_ANSWER VALUES (\'" + iQN_ID + "\',\'" + dQNVersion + "\',\'" + iASID + "\',\'" + i + "\','0',\'" + rb + "\','')";
cmd.ExecuteNonQuery();
}
if (rpt.Visible == true)
{
string sASID = tb_ASID.Text;
int iASID = int.Parse(sASID);
foreach (RepeaterItem item1 in rpt.Items)
{
Label l = (Label)item1.FindControl("l_AID");
TextBox tb_Blank = (TextBox)item1.FindControl("tb_Blank");
cmd.CommandText = "INSERT INTO AS_ANSWER VALUES (\'" + iQN_ID + "\',\'" + dQNVersion + "\',\'" + iASID + "\',\'" + i + "\',\'" + l.Text.Trim() + "\',\'" + tb_Blank.Text.Trim() + "\','') ";
cmd.ExecuteNonQuery();
}
}
}
i++;
}
//重新打开页面
Response.Redirect("FillIn.aspx?QNID=" + sQN_ID + "&QNVersion=" + sQNVersion);
}