Member 14169626 Ответов: 2

Как установить столбцы и строки datatable в C#?


Я хочу написать таблицу в Excel.Так что преуспевай

col1,row1: Значение1:

col2,row2: А1


Например:

Value1: MyModelEntities.Где(x=>x.ID==2).Select(x=>x.TypeID); --> a1

Value2: MyModelEntities.Где(x=>x.ID==3).Select(x=>x.TypeID); --> a2

Значение3: А3

Значения4: А4

Value5: А5

Value6: А6

Value7: А7

Ценностей8: А8

Что я уже пробовал:

var a1=value1;
var a2=value2;
var a3=value3;
var a4=value4;
var a5=value5;
var a6=value6;
var a7=value7;
var a8=value8;


DataTable dt=new DataTable();
DataColumn dc=new DataColumn("col1",typeof(String));
dt.Columns.Add(dc);

dt= new DataColumn("col2",typeof(String));
dt.Columns.Add(dc);

DataRow dr=dt.NewRow();
dr[0]=("Value1:");
dr[1]=a1;
dr[2]=("Value2:");
dr[3]=a2;


Результат:

значение1: | А1 | значение2: |А2

Но я хочу этого

значение1: | А1

значение 2: | a2

значение 3: | a3

.

.

.

.

ценностей8:| А8

ZurdoDev

Что?!

Member 14169626

8 строк 2 столбца datatable.И установите значение.

2 Ответов

Рейтинг:
2

OriginalGriff

Вы должны вызвать NewRow для каждой строки, которую хотите получить в выходных данных: поэтому добавьте два элемента в первую строку, затем создайте новую строку и добавьте к ней следующие элементы.


Member 14169626

Как сделать его пустым, когда я добавляю новую строку?Я хочу A2,B2, A3,B3 .... А9,Б9 пишут.

А2:Значение1:
B2:a1 (a1:5) Итак, значение 1:5

OriginalGriff

Какую часть "нового" вы не понимаете?

Если вы заполняете тетрадь и покупаете новую, ожидаете ли вы, что она будет уже заполнена вашими записями?

Рейтинг:
1

phil.o

Почти все ваши вопросы начинаются с - Я так хочу ..." за ним следует что-то, чего гамматически здесь быть не должно. Это делает ваши вопросы очень и очень трудно уловить. Может быть, для будущих вопросов вам стоит написать их на своем родном языке и использовать для этого онлайн-переводчик? Я не хочу показаться грубым, на самом деле, это просто чтобы вы знали, что качество ответа, который вы получаете, часто определяется качеством вопроса, который вы задаете.

Для этого вам просто нужно создать новую строку для каждого значения, а не добавлять третий и четвертый столбцы, которые вы даже не определили. Также, по-видимому, есть опечатка с именем переменной DataColumn.

int count = 8;
string[] values = new string[count];
// Initialize values here (values[0] = "..."; values[1] = "..."; etc)

DataTable dt = new DataTable();

DataColumn dc = new DataColumn("col1", typeof(string));
dt.Columns.Add(dc);

dc = new DataColumn("col2", typeof(string));
dt.Columns.Add(dc);

for (int i = 0; i < count; ++i)
{
   DataRow dr = dt.NewRow();
   dr[0] = ($"Value{i + 1}:"); // Here you could use dr["col1"] instead
   dr[1] = values[i];          // Here you could use dr["col2"] instead
   dt.Rows.Add(dr);
}

Важными моментами здесь являются:

  • использование массива для хранения значений вместо одной переменной для каждого значения. Это делает все намного проще.
  • строка определяется с 2 столбцами; не пытайтесь вставить ее еще немного, а скорее создайте новую строку для следующего значения.
  • не забудьте добавить новую строку в коллекцию строк.