내가System.Data.SqlClient.SqlException 외부 키
나는 새로운 Cargo
를 삽입하려고 예외를 표시이 테이블
INSERT 문을 충돌 발생 FOREIGN KEY 제약 조건 "FK_Cargo_Rol"과 충돌했습니다. 충돌은 데이터베이스 "Banco"테이블 "dbo.Rol", 열 'idRol'에 나타납니다. 명세서가 종료되었습니다.
이것은 내 코드 ASPX.CS
public partial class Public_Cargo_CrearCargo : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack){
string query1 = @"SELECT * FROM Formula";
string query2 = @"SELECT * FROM Rol";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Banco"].ToString()))
{
SqlCommand comand = new SqlCommand(query1, con);
SqlCommand comand2 = new SqlCommand(query2, con);
DataSet ds = new DataSet();
DataSet ds2 = new DataSet();
con.Open();
var adapter = new SqlDataAdapter(comand);
var adapter2 = new SqlDataAdapter(comand2);
adapter.Fill(ds, "Formula");
adapter2.Fill(ds2, "Rol");
Select1.DataSource = ds;
Select1.DataTextField = "Formula";
Select1.DataValueField = "idFormula";
Select1.DataBind();
Select2.DataSource = ds2;
Select2.DataTextField = "Nombre_Rol";
Select2.DataValueField = "idRol";
Select2.DataBind();
}
}
}
protected void docreatecargo(object sender, EventArgs e)
{
string query = @"INSERT INTO Cargo (Nombre, idFormula, idRol) VALUES (@nombre, @idFormula, @idRol)";
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Banco"].ToString()))
{
SqlCommand comand = new SqlCommand(query, con);
comand.Parameters.AddWithValue("@idFormula", Select1.SelectedIndex.ToString());
comand.Parameters.AddWithValue("@idRol", Select2.SelectedIndex.ToString());
comand.Parameters.AddWithValue("@nombre", cargo.Text);
con.Open();
Console.Write("idformula :" + Select1.SelectedIndex.ToString() + "," + "id Rol :" + Select2.SelectedIndex.ToString() + "," + "nombre :" + cargo.Text);
comand.ExecuteScalar();
Response.Redirect("~/Public/Cargo/Cargos.aspx");
}
}
}
이 내가 그것을 고칠 수있는 방법 나의 페이지
<asp:Content runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<div class="container">
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label>Cargo</label>
<asp:TextBox runat="server" ID="cargo" CssClass="form-control" required="true"></asp:TextBox>
</div>
<div class="form-group">
<label>Formula asociada</label>
<select id="Select1" runat="server" name="D1"> </select>
</div>
<div class="form-group">
<label>Rol asociada</label>
<select id="Select2" runat="server" name="D2"> </select>
</div>
<div class="form-group">
<asp:Button ID="btn_login" OnClick="docreatecargo" CssClass="btn btn-primary btn-lg btn-block" Text="Guardar" runat="server"/>
</div>
</div>
</div>
</div>
ASP
입니까 ??
'Rol table'에는없는 'Cargo table'에 값을 삽입하려고합니다. 참조 된 테이블에 존재해야하는 '외부 키 열'에 값을 삽입하면 –
Rol 테이블의 idRol 열에없는 값을 카고 테이블의 idRol 열에 삽입하려고 시도했을 것입니다. – knkarthick24
@Pradeep "select tag"가 모든 ''Rol ''데이터베이스에 대한 질의와 함께 완료된다는 것은 이상합니다. '' <선택 이름 = "ctl00 $ ContentPlaceHolder1 $ 선택 2"ID = "ContentPlaceHolder1_Select2"> \t <옵션 값 = "1"> Administrador '' – cheloncio