以下はフォームのイメージです。値を挿入してデータベースから読み込みたいが、コンボボックスの値は挿入されません。私を助けてください... 私のコードで何が間違っていますか?あなたはコンボボックスのデータソースに設定されているオブジェクトのどのようなComboBoxの値がSQL Serverデータベースに保存されていません
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();
}
}
}
}
}
}
これはパラメータの使い方ではありません。 – LarsTech
これらのパラメータは、テキストボックスの値では正常に動作しますが、コンボボックスでは正しく動作しません。 –
いいえ。Commandオブジェクトにパラメータを追加します。今すぐ、あなたのクエリはSQLインジェクションとフォーマットの問題に公開されています。そのクエリを修正して、 'VALUES(@per_id、@fk_group_id ... 'など。 – LarsTech