akhter86 Ответов: 2

Оператор INSERT конфликтует с ограничением внешнего ключа "FK_subdepartment_subdepartment". Конфликт произошел в базе данных "attendancemanagement", таблице "dbo.department", столбце


у меня возникла проблема при вставке данных в sql с помощью c# через dropdownlist fK.

Что я уже пробовал:

protected void Page_Load(object sender, EventArgs e)
{
    {
        con = new SqlConnection("Data Source=IT;Integrated Security=SSPI;Initial Catalog=AttendanceManagement");
        using (SqlCommand cmd = new SqlCommand("SELECT DeptID, DeptName FROM Department"))
        {
            cmd.CommandType = CommandType.Text;
            cmd.Connection = con;
            con.Open();
            DropDownList1.DataSource = cmd.ExecuteReader();
            DropDownList1.DataTextField = "DeptName";
            DropDownList1.DataValueField = "DeptID";
            DropDownList1.DataBind();
            con.Close();
        }
    }
    DropDownList1.Items.Insert(0, new ListItem("--Select Customer--", "0"));
}
 
protected void Button1_Click(object sender, EventArgs e)
{
    string DeptName = txtsubdept.Text;
    string DeptID = DropDownList1.SelectedItem.Text;
 
    string query = "INSERT INTO SubDepartment VALUES(@DeptName,@DeptID)";
    con = new SqlConnection("Data Source=IT;Integrated Security=SSPI;Initial Catalog=AttendanceManagement");
    {
        using (SqlCommand cmd = new SqlCommand(query))
        {
            cmd.Parameters.AddWithValue("@DeptName", DeptName);
            cmd.Parameters.AddWithValue("@DeptID", DeptID);
 
            cmd.Connection = con;
            con.Open();
            cmd.ExecuteNonQuery();
            con.Close();

2 Ответов

Рейтинг:
2

Leo Chapiro

Я не уверен, что ваш SQL-оператор в порядке.
Он может работать только в том случае, если в таблице SubDepartment есть только эти два столбца.
В противном случае вам нужно указать имена столбцов следующим образом:

INSERT INTO SubDepartment(myDeptNameCol, myDeptIDCol) VALUES(@DeptName,@DeptID)


Посмотри: SQL INSERT INTO оператор[^]


Рейтинг:
13

CHill60

Используйте свой отладчик, чтобы проверить значение DeptID в Button1_Click.

Это сообщение об ошибке возникает, когда вы пытаетесь вставить значение внешнего ключа (DeptID) в "дочернюю" таблицу до того, как вы создали его в качестве первичного ключа в "родительской" таблице.

Я подозреваю, что ваш выпадающий список пуст в тот момент, когда вы нажимаете кнопку, или не имеет выбранного элемента.