두 개의 SQL 테이블 Department 및 Lecturer가 있습니다.
Department: DepartmentID, Name
Lecturer: LecturerID, Name, DepartmentID
열이있는 테이블에 데이터를 표시하고 싶습니다.
Lecturer ID, Name and Department Name
Linq to Sql (람다 식 포함 또는 제외)을 사용하여 어떻게이 작업을 수행 할 수 있습니까? 도와 주셔서 정말 감사합니다. 감사합니다.
귀하의 답변 singhm0077에 감사드립니다. 나는 join 과 약간 혼란스럽고 불행히도 생각대로 작동하지 않습니다. 다행히도 다른 해결책을 찾았습니다.
더 열이 없기 때문에 에 DepartmentName 테이블의 강사 , 나는의 부분 클래스를 만들어야했습니다 강사 나는의 데이터 바인딩하려고했기 때문에 테이블을 강사 나 속성 정의, 테이블과 에 DepartmentName 데이터베이스 테이블에 열을 추가했다.
public partial class Lecturer
{
public string DepartmentName
{
get;
set;
}
}
디자인 부분은 다음과 같습니다.
<ext:GridPanel ID="grid1" runat="server" Width="600px" Header="false">
<Store>
<ext:Store ID="store1" runat="server">
<Model>
<ext:Model ID="model1" runat="server">
<Fields>
<ext:ModelField Name="LecturerID" Type="Int" />
<ext:ModelField Name="Name" Type="String" />
<ext:ModelField Name="DepartmentName" Type="String" />
</Fields>
</ext:Model>
</Model>
</ext:Store>
</Store>
<ColumnModel>
<Columns>
<ext:Column ID="colLecturerID" runat="server" Flex="1" DataIndex="LecturerID" Text="Lecturer ID"></ext:Column>
<ext:Column ID="colName" runat="server" Flex="1" DataIndex="Name" Text="Name"></ext:Column>
<ext:Column ID="colDepartmentName" runat="server" Flex="1" DataIndex="DepartmentName" Text="Department Name"></ext:Column>
</Columns>
</ColumnModel>
</ext:GridPanel>
그리고 linq2sql을 사용하는 코드는 다음과 같습니다.
protected void Page_Load(object sender, EventArgs e)
{
if (!X.IsAjaxRequest)
{
this.store1.DataSource = GetDataToBind();
this.store1.DataBind();
}
}
private List<Lecturer> GetDataToBind()
{
DataBaseDataContext db = new DataBaseDataContext();
List<Lecturer> lstLecturers = db.Lecturers.OrderBy(x => x.LecturerID).ToList();
foreach (Lecturer lecturer in lstLecturers)
{
lecturer.DepartmentName = lecturer.Department.Name;
}
return lstLecturers;
}
마지막으로 데이터베이스가 다음과 같은 경우 :
출력은 다음과 같이 나타납니다.
그래도 최선의 방법인지 아닌지는 모르겠습니다. 그러나 항상 작동합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다