Quantcast
Channel: Strongly-typed reading values from CSV DataTable - Code Review Stack Exchange
Viewing all articles
Browse latest Browse all 7

Strongly-typed reading values from CSV DataTable

$
0
0

Is there a way to do this using parameters so the value is automatically converted to whatever datatype the keyfield has in the datatable?

This code should be reusable for future bulk update applications hence the constant and the check on multiple datatypes.

private const string DBKEYFIELDNAME = "CustomerNr";...    for (int i = 1; i <= csvLines.Length - 1; i++) // i=1 => skip header line{    string[] csvFieldsArray = csvLines[i].Split(';');    int indexKeyField = csvHeaders.IndexOf(CSVKEYFIELDNAME.ToLower());    object csvKeyValue = csvFieldsArray[indexKeyField];    // ... some more code here that is not relevant    // Find the matching row for our csv keyfield value    Type keyType = parameters.DataTableOriginal.Columns[DBKEYFIELDNAME].DataType;    DataRow[] rowsOriginal = null;    if (keyType.IsAssignableFrom(typeof(string)))        rowsOriginal = parameters.DataTableOriginal.Select(DBKEYFIELDNAME +"='"+ csvKeyValue.ToString() +"'");    else if (keyType.IsAssignableFrom(typeof(Int16)) || keyType.IsAssignableFrom(typeof(Int32)) || keyType.IsAssignableFrom(typeof(Int64)) || keyType.IsAssignableFrom(typeof(bool)))        rowsOriginal = parameters.DataTableOriginal.Select(DBKEYFIELDNAME +"="+ csvKeyValue);    if (rowsOriginal != null && rowsOriginal.Length == 1)    {        // Do some processing of the row here    }}

Viewing all articles
Browse latest Browse all 7

Latest Images

Trending Articles





Latest Images