[英]Binding multiple DataSources to a single ListView
我有一個包含兩個表User
和Image
的數據庫。
User
包含字段ID(主鍵)和用戶名Images
包含字段ID
(主鍵), UserID
(外鍵鏈接到User.ID
)和ImageTitle
我有一個包含這些值的ASP控件的ListView
<h1><%#Eval ("ImageTitle") %></h1>
<h4 id="authorText">Uploaded by <%#Eval ("UserID") %></h4>
在類后面的代碼中,我有以下代碼綁定數據:
DataClasses1DataContext PiccyPic = new DataClasses1DataContext();
var images = from i in PiccyPic.Images
select i;
lvwImages.DataSource = images;
lvwImages.DataBind();
現在,當我要從圖像表中檢索值時,此方法很好用,但是如上所示,我有“上傳者”,然后是用戶ID,需要用戶名。
我要問的是,我如何將User
和Image
表都綁定到同一列表視圖,以便可以從這兩個表訪問屬性?
切記,當兩個表都使用ID
值作為其主鍵時,它需要知道我要引用的表的ID列。
您不能將兩個數據源分配給ListView。 因此,您有責任將兩個數據源收集到結果集中。 您可以使用存儲過程或C#代碼創建帶有兩個數據集的一個數據集。 這是存儲過程的示例,如果您需要c#代碼,請告訴我
您可以創建存儲過程(聯接SQL查詢),該存儲過程將返回帶有字段的單個DataTable
從USer中選擇USer.UserID,UserName,ImageId,ImageTitle內連接圖像user.userid = images.userid
然后將此數據表用作ListView的數據源
您需要加入。
問題中沒有足夠的信息來為您提供完整的答案,但是您應該能夠從此MSDN文章中找出語法: http : //msdn.microsoft.com/zh-cn/library/bb397941.aspx
我懷疑新查詢看起來像這樣,但是在不知道如何設置類的情況下很難說。
var images = from i in PiccyPic.Images
join user in PiccyPic.Users on i.UserId equals user.Id
select new { property1 = i.Property1, property2 = user.Property2, etc. }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.