2010-04-02 11 views
5

Usando el siguiente código (desde una aplicación de consola que he improvisado), agrego siete columnas a mi tabla de datos. Una vez hecho esto, ¿cómo puedo configurar el tipo de datos para cada columna? Por ejemplo, la columna 1 de la tabla de datos tendrá el encabezado "ItemNum" y quiero configurarlo como Int. He mirado en algunos ejemplos de Thet 'red, pero la mayoría de ellas muestro crear la cabecera de la columna y el tipo de datos de columna a la vez, así:¿Cómo puedo agregar el tipo de datos de columna después de agregar los encabezados de columna a mi tabla de datos?

loadDT.Columns.Add("ItemNum", typeof(Int)); 

En este punto de mi programa, la columna ya tiene un nombre. Sólo quiero hacer algo como esto (código no real):

loadDT.Column[1].ChangeType(typeof(int)); 

Aquí está mi código hasta ahora (que da las columnas de su nombre):

// get column headings for datatable by reading first line of csv file. 
     StreamReader sr = new StreamReader(@"c:\load_forecast.csv"); 
     headers = sr.ReadLine().Split(','); 
     foreach (string header in headers) 
     { 
      loadDT.Columns.Add(header); 
     }  

Obviamente, soy bastante nuevo en esto, pero tratando muy duro de aprender. ¿Alguien me puede apuntar en la dirección correcta? ¡Gracias!

Respuesta

2

Usted debe ser capaz de asignar la propiedad de tipo de datos de la columna, siempre y cuando no hay datos almacenados en esa columna aún:

CÓDIGO:

loadDT.Column[1].DataType = typeof(int); 
+0

Sí, en este punto del programa, no hay datos en la tabla de datos. ¡Increíble! ¡Muchas gracias por la respuesta rápida! Lo agradezco mucho C# se está volviendo más divertido todos los días! – Kevin

1

estudio visual no permite cambiar el tipo de de una columna tiene algunos datos, u debe crear una nueva columna con su tipo ideal y copiar los datos de la columna especificada a la nueva columna

DataTable DT = new DataTable(); 
DT = somsdata ; 
    DT.columns.Add("newcol",object); 
    foreach(datarow dr in DT.rows) 
      dr.itemarray["newcolumn"] = dr.itemarray["oldColumn"]; 
Cuestiones relacionadas