我遇到有关ComboBox
的问题。我有一个有2个项目的ComboBox。现在我想选择其中一个并将其保存到数据库中。但是在转换NVARCHAR值时,我收到有关转换失败的错误。
转换nvarchar值时转换失败 'System.Data.DataRowView'到数据类型int
我在数据库表中有一个具有VARCHAR(50)数据类型的ComboBox字段。并请解释为什么我收到错误?这是代码
private void InsertCourseDetail()
{
if (string.IsNullOrEmpty(tbID.Text) == true)
{
CS = ConfigurationManager.ConnectionStrings["UMSdbConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT ISNULL(MAX(course_id),0)+1 FROM CourseDetail", con);
cmd.CommandType = CommandType.Text;
tbID.Text = cmd.ExecuteScalar().ToString();
{
using (SqlCommand cmd1 = new SqlCommand("INSERT INTO [dbo].[CourseDetail] (course_id,hec_code,course_type,FK_pro_id,course_cre_hour)VALUES(@course_id,@hec_code,@course_type,@FK_pro_id,@course_cre_hour )", con))
{
cmd1.CommandType = CommandType.Text;
cmd1.Parameters.AddWithValue("@course_id", tbID.Text);
cmd1.Parameters.AddWithValue("@hec_code", tbHECCode.Text);
cmd1.Parameters.AddWithValue("@course_type", (cBoxCourseType.SelectedItem == null) ? "NULL" : cBoxCourseType.SelectedItem.ToString());
cmd1.Parameters.AddWithValue("@FK_pro_id", (cBoxProgram.SelectedItem == null) ? "NULL" : cBoxProgram.SelectedItem.ToString());
cmd1.Parameters.AddWithValue("@course_cre_hour", (cBoxCreditHours.SelectedItem == null) ? "NULL" : cBoxCreditHours.SelectedItem.ToString());
cmd1.ExecuteNonQuery();
con.Close();
MessageBox.Show("Record Has been Saved Successfully !", "Info", MessageBoxButtons.OK, MessageBoxIcon.Information);
FillGridView();
}
}
}
}
}
答案 0 :(得分:1)
您收到运行时错误:
转换nvarchar值时转换失败 'System.Data.DataRowView'到数据类型int。
那是因为您尝试使用组合框控件的SelectedItem
设置参数值。实际上,{2}组合框中的SelectedItem
为DataRowView
。如果您为ValueMember
控件设置了ComboBox
,则可以使用他们的SelectedValue
,否则您可以将SelectedItem
投射到DataRowView
并阅读您想要的字段。例如:
var value = comboBox1.SelectedValue;
或
var value = ((DataRowView)comboBox1.SelectedItem)["Id"];
答案 1 :(得分:1)
解决.. !!!
$(this).siblings(".menit").val(waktu_jam);