【发布时间】:2011-08-31 00:44:23
【问题描述】:
每个调查都有多个问题 (10),每个问题都有自己的评分。目前我只能为每个问题一次插入一个评分。我正在尝试创建一个表单,以便我可以同时为每个问题添加评分。
我遇到的问题是表单只输入第一个问题的评分,并在第二个实例中遇到错误:'throw new ApplicationException("Data error.");'
每个问题都需要保留选定的调查 ID,以识别它属于哪个调查。
===== 代码背后=====
protected void AddRatingBTN_Click(object sender, EventArgs e)
{
if (DropDownListSurvey.SelectedValue == "Select")
{
//Label1.Text = "hi";
return;
}
string connectionString = WebConfigurationManager.ConnectionStrings["DBConnectionString1"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("InsertRating", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1000;
cmd.Parameters.Add(new SqlParameter("@Survey_ID", SqlDbType.Int));
cmd.Parameters["@Survey_ID"].Value = Convert.ToInt32(DropDownListSurvey.SelectedValue.ToString());
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_1.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
con.Close();
}
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1001;
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_2.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
con.Close();
}
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1002;
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_3.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
Response.Redirect(Request.RawUrl);
con.Close();
}
}
}
}
【问题讨论】:
-
代码太不干了,原则上我会拒绝回答...