안녕 나는 마스터 xmlfile에서 가져온 열 (coursecode)이있는 데이터베이스가 있습니다. coursecode와 함께 데이터베이스는 시작 날짜, 종료 날짜 등과 같은 다른 데이터를 저장합니다.이 데이터를 정기적으로 업데이트해야 데이터베이스에 바인딩 된 gridview를 사용할 수 있습니다. 문제는 코스 이름이 xml 파일에만 있다는 것입니다. 관계형 데이터베이스의 테이블을 사용하여 데이터베이스와 XML 파일을 연결하여이 데이터를 GridView에 렌더링 할 수있는 방법이 있습니까? 나는 가졌지 만 결과 페이지가 매우 느려서 그렇게 할 수 없다고 가정합니다. 이 일을 할 수 있습니까?데이터베이스 바인딩 된 gridview에서 xml 파일의 값 가져 오기
courses.aspx
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ myconn %>"
SelectCommand="SELECT CourseCode, Data1, Data2, CourseType FROM Courses ORDER BY CourseCode">
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="CourseCode" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="CourseCode" SortExpression="CourseCode">
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("CourseCode") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label id="lblDate" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
restofgridviewhere
</Columns>
</asp:GridView>
courses.aspx.vb
Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
For i As Integer = 0 To GridView1.Rows.Count - 1
'create new label with the contents of lblDate
Dim labelDate As Label = DirectCast(GridView1.Rows(i).FindControl("lblDate"), Label)
Dim Label4 As Label = DirectCast(GridView1.Rows(i).FindControl("Label4"), Label)
For i As Integer = 0 To GridView1.Rows.Count - 1
Dim labelDate As Label = DirectCast(GridView1.Rows(i).FindControl("lblDate"), Label)
Dim Label4 As Label = DirectCast(GridView1.Rows(i).FindControl("Label4"), Label)
Dim ds As New DataSet()
ds.ReadXml("file.xml")
Dim xmlDoc As New XmlDataDocument(ds)
Dim nodeList As XmlNodeList = xmlDoc.DocumentElement.SelectNodes("courses/course[code = '" & Label4.Text & "']")
Dim myRow As DataRow
For Each myNode As XmlNode In nodeList
myRow = xmlDoc.GetRowFromElement(DirectCast(myNode, XmlElement))
If myRow IsNot Nothing Then
labelDate.Text = myRow("name")
End If
Next
Next
End Sub
file.xml
<courses>
<course>
<name>Course name</name>
<code>Course code</code>
</course>
<courses>
XML이 포함 된 열의 SQL 데이터 형식은 무엇입니까? –