2012-12-19 17 views
5

में लंबवत क्षैतिज तालिका प्रदर्शित करें मेरे पास डेटाबेस से प्रदर्शित एक तालिका है। मैं> क्षैतिज हैडर स्तंभ प्रदर्शित करना चाहते हैं खड़ीडेटाग्रिड-WPF

मेरे तालिका संरचना

Server|Role|Status|Date 

है, लेकिन मैं के रूप में प्रदर्शित करने के लिए

Server 
    Role 
    Status 
    Date 

मैंने कोशिश की डाटासेट फ्लिप करना चाहते हैं, और इसे बनाने की कोशिश की। शुरुआत में निर्माण सफल रहा लेकिन मैं अपने डेटाग्रिड पर कोई भी डेटा नहीं देख सकता। कृपया मदद करें, क्या इस समस्या से निपटने का कोई और तरीका है?

यहाँ मेरी कोड स्निपेट

SqlConnection con; 
SqlDataAdapter da = null; 
DataSet ds = null; 

private void Page_Loaded(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     da = new SqlDataAdapter("Select * from [ServerDB_Test].[dbo].[ServerStatus] ", con); 
     ds = new DataSet(); 
     foreach (DataTable dt in my_DataSet.Tables) 
     { 
      DataTable table = new DataTable(); 

      for (int i = 0; i <= dt.Rows.Count; i++) 
      { 
       table.Columns.Add(Convert.ToString(i)); } 
       DataRow r; 
       for (int k = 0; k < dt.Columns.Count; k++) 
       { 
        r = table.NewRow(); 
        r[0] = dt.Columns[k].ToString(); 
        for (int j = 1; j <= dt.Rows.Count; j++) 
        { 
         r[j] = dt.Rows[j - 1][k]; 
        } 
        table.Rows.Add(r); 
       } 
      ds.Tables.Add(table); 
     } 
     da.Fill(ds); 
     dataGrid1.ItemsSource = ds.Tables[1].DefaultView; 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
} 

धन्यवाद

+0

यदि मैं गलत नहीं हूं, तो आपको एक खाली डेटा ग्रिड देखना होगा, है ना? क्योंकि मुझे लगता है कि कोई डेटा नहीं मिला है और 'da.fill' विधि नहीं कहा जाता है .. यदि आप इसे सही करते हैं, तो मैं एक और समस्या देखता हूं, सभी ट्रांसपोज़िंग तर्कों के बाद, आप फिर से मूल डेटाटेबल को' डेटाग्रिड 1 ' इसे बदल दें 'डीएस।' डीएस के बजाय [1] '। [0] ' – dotNETbeginner

+1

हाँ, ठीक है। मैं एक खाली डाटाग्रिड देखता हूं। लेकिन जब मैं da.Fill (डीएस) जोड़ने की कोशिश करता हूं; buidling के दौरान गलती है। मुझे अंतिम वाक्य में दिए गए विकल्प को आज़माएं और आपको – user1221765

+0

बताएंगे कि आपको वास्तव में क्या त्रुटि मिल रही है? और यदि आप 'भरें' नहीं करते हैं, तो आपको कोई आउटपुट प्राप्त करने का कोई तरीका नहीं है ... – dotNETbeginner

उत्तर

11

पहले मैं अपने DB में मेरी टेबल घूर्णन पाइवट टेबल उपयोग करने की कोशिश में है, लेकिन सफल नहीं हो सकता है ..

तो मैं करने के लिए मिला तालिका के दृश्य को घूर्णन करने के लिए डेटाग्रिड। प्लेआउट ट्रांसफॉर्म और एक डाटाग्रिड सेट करें।

  <DataGrid.LayoutTransform> 
      <TransformGroup> 
       <RotateTransform Angle="90"/> 
        <MatrixTransform Matrix="-1,0,0,1,0,0"/> 
       </TransformGroup> 
      </DataGrid.LayoutTransform> 
      <DataGrid.ColumnHeaderStyle> 
       <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource {x:Type DataGridColumnHeader}}"> 
        <Setter Property="LayoutTransform"> 
         <Setter.Value> 
          <TransformGroup> 
           <RotateTransform Angle="-90"/> 
           <ScaleTransform ScaleX="1" ScaleY="-1" /> 
          </TransformGroup> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </DataGrid.ColumnHeaderStyle> 
      <DataGrid.CellStyle> 
       <Style TargetType="DataGridCell"> 
        <Setter Property="LayoutTransform"> 
         <Setter.Value> 
          <TransformGroup> 
           <RotateTransform Angle="-90"/> 
           <ScaleTransform ScaleX="1" ScaleY="-1" /> 
          </TransformGroup> 
         </Setter.Value> 
        </Setter> 
       </Style> 
      </DataGrid.CellStyle> 

और अनुसार कॉलम की ऊंचाई और चौड़ाई निर्धारित करें और यह ठीक काम करता है। धन्यवाद!

+2

महान काम। मैंने इसे अपने डाटाग्रिड में अनुकूलित किया। – KyloRen

+0

महान यह आपकी मदद की! – user1221765