2012-08-01 73 views
1

我有2個表:tbleducation和tblemployee。 tblemployee表的字段如:employeeID,employeeName等.tbleducation具有如下字段:Id,employeeID等。插入下拉列表數據唯一ID到表

我想創建一個dropwdownlist,從tblemployee表中選擇一個給定employeeName的employeeID,這樣它可以插入到tbleducation中。我寫的代碼如下:

模式

public class UserModels 
{ 

    public string EmployeeName { get; set; } 
    public int EmployeeCode { get; set; } 
    public IEnumerable<SelectListItem> Employee { set; get; } 
} 

控制器

[HttpPost] 
public ActionResult Education(FormCollection edu) 
{ 
    tblEmployee_Education education = new tblEmployee_Education(); 
    education.EmployeeID = Convert.ToInt32(edu["EmployeeName"].ToString()); 
    education.Duration = edu["Duration"].ToString(); 
    education.Certificate = edu["Certificate"].ToString(); 
    education.Country = edu["Country"].ToString(); 
    education.SchoolName = edu["SchoolName"].ToString(); 
    education.Major = edu["Major"].ToString(); 
    education.SubDescript = edu["SubDescript"].ToString(); 
    context.AddTotblEmployee_Education(education); 
    context.SaveChanges(); 
    return View(); 
} 

查看

<%= Html.DropDownListFor(x => x.EmployeeName, Model.Employee, "select EmployeeName")%> 

當我試圖插入我得到了以下錯誤消息:

「INSERT語句衝突與外鍵約束FK_tblEmployee_Education_tblEmployee_Employee」。衝突發生在數據庫「MP_DBS_old」,表「dbo.tblEmployee_Employee」,列'代碼'。 「

我知道發生這個錯誤是因爲dropdownlist的值是一個字符串,數據庫需要一個整數(employeeID),我真的不知道如何解決它。請

+0

你確定這就是爲什麼你的錯誤。這似乎與外鍵約束有衝突。你有沒有在表格中使用你想要再次插入到表格中的特定鍵的行? – JonH 2012-08-01 19:26:53

+0

我敢肯定,錯誤信息和造成這種錯誤的原因正如我告訴過你的,這只是我的想法。無論如何,我不明白在你問我的問題中「特定鍵」是什麼意思。 – Maly 2012-08-02 01:50:04

回答

0

您收到此錯誤,因爲你正試圖插入,而不是僱員EmployeeName

Html.DropDownListFor(X => x.EmployeeName,Model.Employee, 「選擇EmployeeName」)%>:!錯誤

您正在填充EmployeeName int dropdowmli st。正確的路線應該是這樣

Html.DropDownListFor(x => x.EmployeeID , Model.Employee, "select EmployeeName")%> 

接下來,您必須改正這一行:

education.EmployeeID = Convert.ToInt32(edu["EmployeeID "].ToString()) 

我認爲這將solbe您的問題

+0

非常感謝您的回答,但我在'education.EmployeeID = edu [「EmployeeID」];'並且顯示消息「無法將類型字符串隱式轉換爲整數」時出錯。是整數。請幫助我, – Maly 2012-08-02 07:42:45

+0

檢查edu [「EmployeeID」]不爲空然後將其轉換爲整數 – 2012-08-02 09:04:26

+0

謝謝,但是當我將它轉換爲整數:'education.EmployeeID = Convert.ToInt32(edu [「EmployeeID」]的ToString());」。它會顯示如下錯誤:「輸入字符串格式不正確」。 – Maly 2012-08-02 09:45:07