Eu tenho um banco de dados do SQL Server 2008 e estou trabalhando nele no back-end. Estou trabalhando em asp.net/C#
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
//how do I read strings here????
}
Eu sei que o leitor tem valores. Meu comando SQL é selecionar apenas 1 coluna de uma tabela. A coluna contém apenas seqüências de caracteres. Eu quero ler as strings (linhas) no leitor, uma por uma. Como eu faço isso?
Coloque o nome da coluna e comece a retornar do banco de dados onde
"ColumnName"
está. Se for uma string, você pode usar.ToString()
. Se for outro tipo, você precisará convertê-lo usandoSystem.Convert
.fonte
vai funcionar
fonte
toString()
não é válido deve ser.ToString()
apenas fyiPara um único resultado:
Para vários resultados:
fonte
Pensei em compartilhar meu método auxiliar para aqueles que podem usá-lo:
Uso:
O método auxiliar converte para qualquer valor que você desejar, se não puder converter ou o valor do banco de dados for NULL, o resultado será nulo.
fonte
reader.GetColumn<int>("M_ID");
Na verdade, eu mesmo descobri que poderia fazer isso:
fonte
Trim()
não foi mencionado na pergunta e, portanto, está aqui, mas não nas outras respostas.Eu sei que isso é meio antigo, mas se você estiver lendo o conteúdo de um SqlDataReader em uma classe, isso será muito útil. os nomes das colunas do leitor e da classe devem ser os mesmos
fonte
Eu argumentaria contra usar
SqlDataReader
aqui; O ADO.NET tem muitos casos extremos e complicações e, na minha experiência, o código ADO.NET mais escrito manualmente é quebrado de pelo menos uma maneira (geralmente sutil e contextual).Existem ferramentas para evitar isso. Por exemplo, no caso aqui, você deseja ler uma coluna de strings. Dapper torna isso completamente indolor:
O Dapper aqui está lidando com toda a parametrização, execução e processamento de linha - e muitos outros detalhes obscuros do ADO.NET. O
<string>
pode ser substituído por<SomeType>
materializar linhas inteiras em objetos.fonte
Nos termos mais simples, se sua consulta retornar column_name e ela contiver uma string:
fonte
Eu tenho uma função auxiliar como:
então eu uso para extrair a string:
fonte
Normalmente leio dados pelo leitor de dados dessa maneira. acabou de adicionar um pequeno exemplo.
fonte
Você tem que
read
database column
aqui. Você pode dar uma olhada no seguinte snippet de códigofonte