2013-09-16 4 views
0

У меня есть DataTable и добавить столбцы программно (следовательно, не существует определенное количество столбцов):Как я могу назвать свою строку в таблице данных C#?

MyTable.Columns.Add(Value.name, typeof(double)); 

Я затем добавить пустые строки в таблице данных:

MyTable.Rows.Add(0);  

Я хочу добавить ярлыки строк, такие как «цена», «количество», «ставка» и т. Д. Если я добавлю их так, как знаю, мне нужно знать количество столбцов, которое у нас будет

Как я могу кодировать это, чтобы быть более надежным, где nu столбцы столбцов не являются статическими? Спасибо

+0

Вы можете добавлять столбцы, когда захотите. – SLaks

+0

Число столбцов динамически выбирается во время выполнения ... Я занимаюсь маркировкой строк, а не столбцами. – DolemiteMofo

+0

Вы хотите добавить метку, чтобы найти строку по ключу или для отображения? –

ответ

1

Это не делает, чтобы иметь строку заголовка.
Столы магазин данные, нет представление.

Вы должны установить свои столбцы «Name s.

+0

Это стандартное соглашение в данном заявлении, но спасибо в любом случае ..... – DolemiteMofo

+0

@DolemiteMofo: Это соглашение _horrible_. Это означает, что все ваши подсчеты строк будут отключены, вы не сможете использовать ограничения правильно, вы не сможете использовать нестрочные типы данных и другие проблемы. **Не делай этого**. Тем более, что базы данных неупорядочены. – SLaks

0

Вы можете получить доступ к столбцам в коллекции Columns.

я продемонстрирую itteration, используя список строк:

List<string> columns = new List<string>(); 
columns .Add("price"); 
columns .Add("quantity"); 
columns .Add("bid"); 
columns .Add("price"); 

foreach(string columnName in columns) 
{ 
    if(MyTable.Columns[columnName] == null) 
    { 
     //Col does not exist so add it: 
     MyTable.Columns.Add(columnName); 
    } 
} 

Обратите внимание, что в списке есть столбец price дважды, но это только добавит его один раз.

public DataTable GetDataTable() 
{ 
    var dt = new DataTable(); 
    dt.Columns.Add("Id", typeof(string)); // dt.Columns.Add("Id", typeof(int));  
    dt.Columns["Id"].Caption ="my id"; 
    dt.Columns.Add("Name", typeof(string)); 
    dt.Columns.Add("Job", typeof(string)); 
    dt.Columns.Add("RowLabel", typeof(string)); 
    dt.Rows.Add(GetHeaders(dt)); 
    dt.Rows.Add(1, "Janeway", "Captain", "Label1"); 
    dt.Rows.Add(2, "Seven Of Nine", "nobody knows", "Label2"); 
    dt.Rows.Add(3, "Doctor", "Medical Officer", "Label3"); 
    return dt; 
} 
+0

Спасибо за ответ ... Не думаю, что я достаточно хорошо объяснил свою потребность ... Скажем, у нас есть сэндвич-магазин. Столбы для хлеба, мяса, сыра, салата и т. Д. Строки такие вещи, как стоимость предмета, количество на складе и т. Д. Количество колонок (здесь составные компоненты сэндвича) выбраны во время выполнения, но независимо от количества компонентов, мы хотим, чтобы имена строк были одинаковыми. В настоящее время мы можем построить таблицу просто отлично, но ярлыки строк пустые .... как мы можем пометить эти строки? – DolemiteMofo

+0

public DataTable GetDataTable() { var dt = new DataTable(); dt.Columns.Add ("Id", typeof (string)); // dt.Columns.Add ("Id", typeof (int)); dt.Columns ["Id"]. Caption = "my id"; dt.Columns.Add ("Name", typeof (string)); dt.Columns.Add ("Job", typeof (string)); dt.Rows.Add (GetHeaders (dt)); dt.Rows.Add (1, «Janeway», «Captain»); dt.Rows.Add (2, «Семь из девяти», «никто не знает»); dt.Rows.Добавить (3, «Доктор», «Медицинский сотрудник»); return dt; } } Вот как я знаю, как это сделать, когда количество столбцов задано в каменном предварительном режиме ... как это сделать для динамического # col cols – DolemiteMofo

+0

Я хотел бы увидеть пример ожидаемого ввода данных и формата вывода. –

Смежные вопросы