2011-12-28 13 views

Respuesta

62
Log.WriteLine("Value of CompanyName column:" + thisReader["CompanyName"]); 
+5

I utilizado como solución siguiente - 'Log.WriteLine ("valor de la columna CompanyName:" + thisReader.GetValue (thisReader.GetOrdinal ("CompanyName"))); ' ¿Qué [] significa? – algot

+0

@algot es una propiedad indexada, consulte http://msdn.microsoft.com/en-us/library/aa288464.aspx o http://msdn.microsoft.com/en-us/library/2549tw02.aspx –

+1

I no entiendo la sintaxis "thisReader [" CompanyName "]). No es de ninguna manera lógica. Logical sería" thisReader.fields ("CompanyName"). value ". Pero quién soy yo para juzgar ... – tmighty

41

También puede hacer esto.

//find the index of the CompanyName column 
int columnIndex = thisReader.GetOrdinal("CompanyName"); 
//Get the value of the column. Will throw if the value is null. 
string companyName = thisReader.GetString(columnIndex); 
+0

Estaba pensando en qué caso esto podría tener más beneficios que leer directamente los datos del lector como thisReader ["CompanyName"]. ¿Puede darme algún caso específico? Muchas gracias por cierto – curiousBoy

+1

@ curiousBoy haciéndolo de esta manera hará que sea más fácil verificar si la columna existe, también se asegura de que el valor que está seleccionando esté en el formato de datos correcto, por ejemplo, GetString, GetInt32, no devuelve un objeto que luego tiene que lanzar. Es por eso que usaría este método –

+0

@DavidMolyneux thx para su comentario, por lo que entiendo por su explicación, básicamente hace "null check" para la cadena y arroja un error en caso de que el valor sea nulo. Esto también me hace pensar que esto es solo para el tipo de cadena. Aparte de eso, por ejemplo: "int productQuantiy = thisReader [" ProductQuantity "]" arrojaría un error si ProductQuantity no tiene un valor int válido, ¿no? THX otra vez – curiousBoy

-3

thisReader.GetString (int columnIndex)

+0

Agregue una explicación de cómo esta respuesta realmente * resuelve * el problema. – ekad

Cuestiones relacionadas