组合框值没有保存到sql server数据库中
本文关键字:sql server 数据库 保存 组合 | 更新日期: 2023-09-27 18:13:57
下面是表单的图像。我想插入值,然后从数据库加载它,但组合框值没有插入。请帮帮我……我的代码有什么问题??
private void btnSave_Click(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(tbPermissionID.Text) == true)
{
string CS = ConfigurationManager.ConnectionStrings["UMSdbConnectionString"].ConnectionString;
using (SqlConnection con = new SqlConnection(CS))
{
using (SqlCommand cmd = new SqlCommand("SELECT MAX(per_id)+1 FROM Permission", con))
{
con.Open();
cmd.CommandType = CommandType.Text;
SqlDataReader dr = cmd.ExecuteReader();
{
if (dr.Read())
{
tbPermissionID.Text = dr[0].ToString();
SqlParameter p1 = new SqlParameter("@per_id", tbPermissionID.Text);
SqlParameter p2 = new SqlParameter("@fk_group_id", cbGroupName.SelectedText.ToString());
SqlParameter p3 = new SqlParameter("@fk_form_id", cbFormName.SelectedText.ToString());
SqlParameter p4 = new SqlParameter("@per_save", cbSave.Items[cbSave.SelectedIndex].ToString());
SqlParameter p5 = new SqlParameter("@per_update", cbUpdate.SelectedText.ToString());
SqlParameter p6 = new SqlParameter("@per_select", cbSelect.SelectedText.ToString());
SqlParameter p7 = new SqlParameter("@per_delete", cbDelete.SelectedText.ToString());
SqlParameter p8 = new SqlParameter("@per_flag", cbFlag.SelectedText.ToString());
SqlCommand cmd1 = new SqlCommand("insert into Permission (per_id,fk_group_id,fk_form_id,per_save,per_update,per_select,per_delete,per_flag) VALUES ('" + p1.Value + "','" + p2.Value + "','" + p3.Value + "','" + p5.Value + "','" + p5.Value + "','" + p6.Value + "','" + p7.Value + "','" + p8.Value + "')", con);
cmd1.ExecuteNonQuery();
MessageBox.Show("Record Saved");
LoadPermissionDetails();
}
}
}
}
}
}
这是图片
您为comboBoxes数据源设置了什么类型的对象?如果它是一个简单的字符串数组,请尝试这个而不是ComboBox。SelectedText:
ComboBox.SelectedItem.ToString()
如果你的数据源不是字符串数组,你应该将SelectedItem的值转换为你的目标类型,然后检索你需要插入数据库的属性。例如,如果你给ComboBox分配了一个公司列表,并且公司对象有一个名为"name"的属性名,你应该这样做:
((Company)ComboBox.SelectedItem).Name
记住检查是否没有选择以避免NullReferenceException。