Как каждый вставляет столбец в набор данных между двумя существующими столбцами?

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

Проверяя, не указан ли тип, будет проверяться, была ли еще определена переменная.

=== null или !== null будет проверять, действительно ли значение переменной равно null.

== null или != null проверяет, установлено ли значение undefined или null.

if(value) проверяет, есть ли переменная undefined, null, 0 или пустая строка.

20
задан mezoid 9 December 2008 в 02:49
поделиться

3 ответа

Можно использовать DataColumn. SetOrdinal () метод с этой целью.

DataSet ds = new DataSet();
ds.Tables.Add(new DataTable());
ds.Tables[0].Columns.Add("column_1", typeof(string));
ds.Tables[0].Columns.Add("column_2", typeof(int));
ds.Tables[0].Columns.Add("column_4", typeof(string));
ds.Tables[0].Columns.Add("column_3", typeof(string));
//set column 3 to be before column 4
ds.Tables[0].Columns[3].SetOrdinal(2);
41
ответ дан 29 November 2019 в 23:23
поделиться

Я использовал Ваше предложение для создания метода расширения для DataColumnCollection DataSet:

public static void InsertAfter(this DataColumnCollection columns, 
                              DataColumn currentColumn, DataColumn newColumn)
{
    if (!columns.Contains(currentColumn.ColumnName))
       throw new ArgumentException(/** snip **/);

    columns.Add(newColumn);
    //add the new column after the current one
    columns[newColumn.ColumnName].SetOrdinal(currentColumn.Ordinal + 1); 
}

я могу теперь записать:

 dt = ds.Tables[0];
 dt.Columns.InsertAfter(dt.Columns["column_2"], new DataColumn("column_3"));
8
ответ дан 29 November 2019 в 23:23
поделиться

Скопируйте первые два столбца в новый набор данных, затем добавьте третий столбец и добавьте остальные столбцы.

Вы могли перенести это в функцию InsertAfter при необходимости.

-1
ответ дан 29 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: