Embora não haja solução de uma etapa para a conversão de um DataReader diretamente em um DataSet dentro do Microsoft Dot Net Framework , você pode passar por um processo de várias etapas de transformar um programa com acesso DataReader em um usando um DataSet . Ambos DataReader e DataSet são derivados usando um comando que encapsula uma consulta de banco de dados . Um DataReader retorna os resultados da consulta uma linha de cada vez , mantendo-se conectado ao banco de dados . Em contraste, um DataSet é auto-suficiente e mantém todos os dados retornados da consulta. Para o desempenho , utilize o DataReader , para a versatilidade , o conjunto de dados é geralmente a melhor opção. Coisas que você precisa
Microsoft Visual Studio ou Visual Basic Express (2005 ou posterior)
código # Visual Basic ou C que usa um objeto DataReader
Algum conhecimento de métodos de Dot Net Framework de acesso a dados
< br > Mostrar Mais instruções
1
Localize o código que cria o DataReader . No Visual Basic , o código é algo como isto :
01: Dim conn As SqlConnection = Nothing
02: Dim cmd Como SqlCommand
03: rdr Dim As SqlDataReader = nada
04 : Dim campo1, campo2 As String
05:
06: Experimente em
07: conn = CreateConnection ()
08: cmd = New SqlCommand ( " procName " , conn)
09: cmd.CommandType = CommandType.StoredProcedure
10:
11: rdr = cmd.ExecuteReader
12: Enquanto rdr.Read
13: campo1 = rdr.GetString (0)
14: campo2 = rdr.GetString (1)
15: ...
16: End While
17:
18 : Catch ex As Exception
19 : Jogue
20:
21: Finalmente
22: rdr.Close ()
23: Try End , Foto: conn.Close ()
24
Note que, neste exemplo , a versão SQL do DataReader é usado. O mesmo código funciona para OLEDB e outras classes DataReader
2
Substitua a declaração do DataReader na linha 3 com uma nova declaração para um DataSet chamado ds: .
01: Dim conn como SqlConnection = Nothing
02: Dim cmd como SqlCommand
03> Dim ds As DataSet novo
04: Dim campo1 , campo2 as String
05 :
3
Substituir as referências ao DataReader em linhas de 11 a 16 com um novo código que cria e configura um DataAdapter :
06: Tente
07: conn = CreateConnection ()
08: cmd = New SqlCommand ( " procName " , conn)
09: cmd.CommandType = CommandType.StoredProcedure
10:
11 > dap Dim As New SqlDataAdapter
12> dap.SelectCommand = cmd
O SqlDataAdapter é um objeto auxiliar usado para mover dados e para trás a partir de um DataSet. Depois que o objeto é criado , o SelectCommandpropriedade está definido para o mesmo objeto de comando usado para criar o DataReader
4
Use o método Fill do DataAdapter para preencher o DataSet: .
13> dap.Fill (ds)
5
fechar a conexão antes de processar os dados , uma vez que o DataSet agora contém todos os dados retornados pelo DataAdapter , fechando a conexão é uma boa prática . Lembre-se também para remover a linha que fecha o DataReader ( linha 22 ) :
18 : Catch ex As Exception
19 : Jogue
20:
21: Finalmente
23: Try End
6
processar os dados , recuperá-lo a partir da coleção de linha do DataSet como: conn.Close ()
24 seguinte forma:
25 > Para cada linha As DataRow In ds.Tables (0) linhas
26 > campo1 = linha ( " campo1 " )
27 > campo2 = . row ( " campo2 " )
28 > ...
29 > ...
30> Próxima