Tengo una base de datos SQL Server 2008 y estoy trabajando en ella en el backend. Estoy trabajando en asp.net/C#
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//how do I read strings here????
}
Sé que el lector tiene valores. Mi comando SQL es seleccionar solo 1 columna de una tabla. La columna contiene cadenas SOLAMENTE. Quiero leer las cadenas (filas) en el lector una por una. ¿Cómo hago esto?
Poner el nombre de la columna comenzar devuelto desde la base de datos donde
"ColumnName"
está. Si es una cadena, puede usar.ToString()
. Si es otro tipo, debe convertirlo usandoSystem.Convert
.fuente
funcionará
fuente
toString()
no es válido debería ser.ToString()
solo para tu informaciónPara un solo resultado:
Para múltiples resultados:
fuente
Pensé en compartir mi método de ayuda para aquellos que pueden usarlo:
Uso:
El método auxiliar convierte a cualquier valor que desee, si no puede emitir o el valor de la base de datos es NULL, el resultado será nulo.
fuente
reader.GetColumn<int>("M_ID");
En realidad, me di cuenta de que podía hacer esto:
fuente
Trim()
no se mencionó en la pregunta y también lo está aquí, pero no en las otras respuestas.Sé que esto es un poco antiguo, pero si está leyendo el contenido de un SqlDataReader en una clase, esto será muy útil. los nombres de columna del lector y la clase deben ser iguales
fuente
Yo argumentaría en contra de usar
SqlDataReader
aquí; ADO.NET tiene muchos casos extremos y complicaciones, y en mi experiencia, la mayoría del código ADO.NET escrito manualmente se rompe al menos de una manera (generalmente sutil y contextual).Existen herramientas para evitar esto. Por ejemplo, en el caso aquí, desea leer una columna de cadenas. Dapper lo hace completamente indoloro:
Dapper aquí se ocupa de toda la parametrización, ejecución y procesamiento de filas, y muchos otros detalles sucios de ADO.NET. Se
<string>
puede reemplazar con<SomeType>
para materializar filas enteras en objetos.fuente
En los términos más simples, si su consulta devuelve column_name y contiene una cadena:
fuente
Tengo una función auxiliar como:
luego lo uso para extraer la cadena:
fuente
Usualmente leo datos por lector de datos de esta manera. Acabo de agregar un pequeño ejemplo.
fuente
Tienes que
read
database column
aqui Puedes echar un vistazo al siguiente fragmento de códigofuente