2

私は2つのテーブルを持っています:

製品
-ProductID、
-ProductName、
-ProductCategoryID、

ProductCategories
-ProductCategoryID、
-ProductCategoryName、

データセットを使用しており、製品 [ProductCategoryID] から ProductCategoryID テーブルへの関係を正常に設定できます。Gridview を整数参照ではなく ProductCategoryName で表示するにはどうすればよいですか?

これがデフォルトで発生するAccessに慣れていますが、Visual Studioではそのようには機能しないようです。

4

4 に答える 4

1

クエリで 2 つのテーブル間にテーブル結合を作成します。たとえば、単一の列を表示するには:

SELECT ProductCategoryName FROM Products
JOIN ProductCategories ON
Products.ProductCategoryID = ProductCategories.ProductCategoryID

myGrid.DataSource = myDataSet;
myDataSet.Bind();
于 2012-05-29T20:12:01.967 に答える
0

わかりました。グリッドビューをどのように操作しているかについて、より多くの情報を提供する必要があります。すべてを正しく入力し、.aspx の列を操作していると仮定して、試しましたか?

<asp:GridView ID="yourId" runat="server" AutoGenerateColumns="false"> 
<Columns> 
...
    <asp:BoundField DataField="ProductCategories.ProductCategoryName" HeaderText="Category" /> 
...
</Columns> 
于 2012-05-29T19:26:21.397 に答える
0

製品 a,ProductCategories b から a.ProductID,a.ProductName,b.ProductCategoryName を選択します。ここで、a.ProductCategoryID=b.ProductCategoryID

myGrid.DataSource = myDataSet; myDataSet.Bind();

于 2012-06-05T09:58:15.730 に答える
0

実装によっては、ビューモデル ベースのアプローチを検討する価値がある場合があります。新しいクラスを作成する

ProductModel
-ProductId
-ProductCategoryName
-ProductName

データベース オブジェクトではなく、このオブジェクトのコレクションにグリッドをバインドします。これはすべての実装でうまくいくわけではありませんが、提案する価値があります。

于 2012-05-29T19:53:03.207 に答える