Пожалуйста, обратитесь к изображениям. Как привязать данные таблицы SQL, которые хранятся в строках, в виде сетки данных (C# Windows Forms) в виде столбцов. Кроме того, я создал столбец [0] в качестве столбца с жесткой кодировкой. Мне нужно связать эти данные, поступающие с SQL на столбец 1. Пожалуйста, помогите мне. Заранее спасибо . :-)Как привязать данные к столбцам в виде C# Windows Forms, которые хранятся в строках в таблице SQL
1
A
ответ
2
Вы можете создать метод, который вращения DataTable
и свопов столбцы и строки таким образом:
public DataTable Rotate(DataTable table)
{
var output = new DataTable();
int i = 1;
output.Columns.Add(" ");
foreach (DataRow r in table.Rows)
output.Columns.Add((i++).ToString());
foreach (DataColumn c in table.Columns)
{
var list = new List<object>();
list.Add(c.ColumnName);
var x = table.AsEnumerable().Select(r => string.Format("{0}", r[c])).ToArray();
list.AddRange(x);
output.Rows.Add(list.ToArray());
}
return output;
}
Затем вы можете использовать его, чтобы повернуть исходную таблицу:
для повернутых таблиц е:
или даже с некоторыми простыми трюками, как это:
Вот код, который я использовал для создания примера:
var dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Date", typeof(DateTime));
dt.Rows.Add(100, "A", DateTime.Now);
dt.Rows.Add(200, "B", DateTime.Now.AddDays(1));
dt.Rows.Add(300, "C", DateTime.Now.AddDays(2));
dt.Rows.Add(400, "D", DateTime.Now.AddDays(3));
this.dataGridView1.DataSource = dt;
this.dataGridView2.DataSource = Rotate(dt);
//To hide column headers and show Id,Name,Date on rows headers, un-comment following codes:
//dataGridView2.ColumnHeadersVisible = false;
//dataGridView2.Columns[0].Visible = false;
//for (int i = 0; i < dataGridView2.Rows.Count; i++)
// dataGridView2.Rows[i].HeaderCell.Value = dataGridView2.Rows[i].Cells[0].Value;
Кроме того, если это для целей отчетности здесь представлено решение для отчетов rdlc: [Как сделать элемент отчета «Список» повторяться горизонтально для отчета RDLC?] (http://stackoverflow.com/q/37 623052/3110834) –
Кажется, что сообщение отвечает на ваш вопрос, дайте мне знать, если у вас есть какие-либо проблемы с применением решения или если вы сочтете это полезным :) –
Thank you: D. Он отлично работает. –