如何在C#中旋转`datagridview`

时间:2016-04-14 21:09:53

标签: c# datagridview

我的datatable有1 row,当然还有标题名columns, 现在我想在datagridview

中垂直显示它们

例如,datagridview必须有2 columns,其中一个rows显示字幕名称,另一个显示datatable的相关值 我尝试通过此代码执行此操作但它显示异常:

  

{"位置1没有行。"}

代码是:

public static void GetSelectedFeedsDetails(Form1 frm)
{
    string StrCon = System.Configuration.ConfigurationManager.ConnectionStrings["FeedLibraryConnectionString"].ConnectionString;
    OleDbConnection Connection = new OleDbConnection(StrCon);
    OleDbDataAdapter DataA = new OleDbDataAdapter("Select * from SelectedFeeds where ID=" + frm.SelectedFeedlistBox.SelectedValue, Connection);
    DataTable OldDTable = new DataTable();
    DataA.Fill(OldDTable);


    DataTable NewDTable = new DataTable();

    NewDTable.Columns.Add("Feild Name");

    for (int i = 0; i < OldDTable.Rows.Count; i++)
    {
        NewDTable.Columns.Add();
    }

    for (int i = 0; i < OldDTable.Columns.Count; i++)
    {
        DataRow NewRow = NewDTable.NewRow();
        NewRow[0] = OldDTable.Columns[i].Caption;

        for(int j = 0; j < OldDTable.Columns.Count; j++)
        {
            NewRow[j + 1] = OldDTable.Rows[j][i];
            NewDTable.Rows.Add(NewRow);
        }
    }
    frm.dataGridView1.DataSource = NewDTable;
}  

我该怎么办?

1 个答案:

答案 0 :(得分:1)

正如OhBeWise所说,答案是:

DataTable NewDTable = new DataTable();

NewDTable.Columns.Add("Field Name");

for (int i = 0; i < OldDTable.Rows.Count; i++)
{
    NewDTable.Columns.Add();
}

for (int i = 0; i < OldDTable.Columns.Count; i++)
{
    DataRow NewRow = NewDTable.NewRow();
    NewRow[0] = OldDTable.Columns[i].Caption;

    for (int j = 0; j < OldDTable.Rows.Count; j++)
    {
        NewRow[j + 1] = OldDTable.Rows[j][i];
    }

    NewDTable.Rows.Add(NewRow);
}