2017-06-05 72 views
0

我正在研究c#中的數據庫程序,並希望將數據關係添加到項目中。但是,我在獲取子行時遇到了問題。我已經使用微軟的文檔提供的代碼:C#獲取子行問題欄問題

static void childRows() { 
     DataRow[] arrRows; 

     foreach(DataRelation relation in dataSet.Tables["Artist"].ChildRelations) { 
      foreach(DataRow row in dataSet.Tables["Artist"].Rows) { 
       arrRows = row.GetChildRows(relation); 

       for(int i = 0; i < arrRows.Length; i++) { 
        foreach(DataColumn column in dataSet.Tables["Artist"].Columns) { 
         Console.WriteLine(arrRows[i][column.ColumnName]); 
        } 
       } 
      } 
     } 

    } 

但我得到一個錯誤,指出第二列(藝術家的名字)不鏈接表中的存在;我認爲這不會是一個問題。

我的數據關係是:

r1 = new DataRelation("Artist_Records", dataSet.Tables["Artist"].Columns[0], dataSet.Tables["Record"].Columns[1]); 
r2 = new DataRelation("Label_Records", dataSet.Tables["RecordLabel"].Columns[0], dataSet.Tables["Record"].Columns[4]); 

dataSet.Relations.Add(r1); 
dataSet.Relations.Add(r2); 

我在做什麼錯?

+0

必須添加數據集上的關係,如https://msdn.microsoft.com/en-us/library/system.data.datarelation(v=提到vs.110).aspx – DASH

+0

我做了,我將這個問題添加到 –

+0

我認爲這應該有所幫助 - http://www.functionx.com/csharp2/dataset/Lesson06.htm – DASH

回答

1

嘗試以下操作:

  foreach(DataRelation relation in dataSet.Tables["Artist"].ChildRelations) 
      { 
        foreach(DataRow row in relation.ChildTable.AsEnumerable()) 
        { 
         Console.WriteLine(string.Join(",", row.ItemArray.Select(x => x.ToString()))); 
        } 
        DataTable dt2 = relation.ChildTable.AsEnumerable().CopyToDataTable(); 
      } 
+0

這是有效的!有沒有辦法使用來自其他表的信息來獲取代碼來創建新的數據表,還是應該使用別的東西? –

+0

我在代碼中添加了一行。 – jdweng