Raja Ganapathy Ответов: 2

Как заменить пустой столбец как "ND" с помощью ASP.NET с#?


Я хочу установить значение для конкретного пустого столбца в таблице данных набора данных как "ND" в наборе данных.
Как это сделать?

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

if (ds.Tables[s].Rows[i][Columncountvalue + 19].ToString().Trim() == "")
{
 ds.Tables[s].Rows[i][Columncountvalue + 19].ToString().Trim().Replace("", "ND");
}

приведенный выше код я попытался заполнить пустой столбец как "ND" в таблице данных dataset, но ниже возникает ошибка

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

2 Ответов

Рейтинг:
20

Praneet Nadkar

Привет,

Как насчет этого :

private void UpdateNulls (DataTable dataTable){
    List<string> dcNames = dataTable.Columns
                            .Cast<DataColumn>()
                            .Select(x => x.ColumnName)
                            .ToList(); //This querying of the Column Names, you could do with LINQ
    foreach (DataRow row in dataTable.Rows) //This is the part where you update the cell one by one
        foreach (string columnName in dcNames)
            row[columnName] = string.IsNullOrEmpty(Convert.ToString(row[columnName])) ? "ND" : row[columnName];
}


Raja Ganapathy

Как использовать этот код для набора данных. :(
извините, что спрашиваю об этом, я немного запутался.

[no name]

Сдать ваш объект DataTable в dataset метод.
UpdateNulls(набора данных.Таблицы[0])

Рейтинг:
0

Maciej Los

Я бы предложил сделать это на уровне сервера, потому что это всегда быстрее, чем на стороне клиента.

Все, что вам нужно сделать, это написать запрос, похожий на этот:

SELECT Field1, Field2, Field3 = CASE WHEN RTRIM(LTRIM(Field3)) = '' THEN 'ND' ELSE Field3 END
FROM YourTableName


Теперь вы должны создать хранимая процедура[^] (SP) и вызовите этот SP, чтобы вернуть желаемый результирующий набор. Как? Проверить это: Пошаговое Руководство: Использование Только Хранимых Процедур (C#)[^]

Существует много преимуществ использования только хранимых процедур, таких как защита SQL-инъекция[^]. Видеть: Как: защита от SQL-инъекций в ASP.NET[^]

Попробуй!