Vous avez une idée raisonnable jusqu'à ce que vous obtenez au point où vous essayez de créer une seconde SqlCommand. C'est, une fois que vous faites le remplissage, vous avez déjà les données dans une table. Vous ne pourriez pas lancer une autre sélection - vous l'avez déjà fait. Vous devez simplement référencer la table que vous souhaitez utiliser dans l'ensemble de données.
Si vous voulez une table de données que vous feriez quelque chose comme ça (pour VB, voir ci-dessous):
SqlDataAdapter myAdapter = new SqlDataAdapter(CommandText, con);
DataSet myDataset = new DataSet();
myAdapter.Fill(myDataset, "Table"); // "Table" is just a name, it can be anything.
mydatatable1 = myDataset.Tables[0]; // Get the table
Maintenant, si vous n'avez pas besoin d'un DataTable, en soi, mais veulent juste lire de la requête, vous utiliseriez un SqlDataReader:
cmd = new SqlCommand(CommandText, con);
// One or more params
cmd.Parameters.AddWithValue("@paramName", Value);
SqlDataReader nwReader = cmd.ExecuteReader();
Ensuite, il suffit de lire de la nwReader:
while (nwReader.Read())
{
string field1Val = (string)nwReader["FieldName"];
etc...
}
Mise à jour: Je ne sais pas VB, mais voici ce que je pense il ressemblerait à ceci:
cmd = New SqlCommand("Select * from table1", con)
ada = New SqlDataAdapter(cmd)
ds = New DataSet
ada.Fill(ds)
mydatatable1 = ds.Tables(0);
Vous pourriez bien être en mesure de raccourcir ce pour se débarrasser de l'SqlCommand supplémentaire (en supposant VB prend en charge cette syntaxe SqlDataAdapater comme C#.
ada = New SqlDataAdapter("Select * from table1", con)
ds = New DataSet
ada.Fill(ds)
mydatatable1 = ds.Tables(0);
Bonne chance ...
@Gopal - essayez-vous de fusionner ds.Tables (0) (le datatable de la première instruction select) avec mydatatable1? Je ne sais pas ce qu'est la variable dr3 ... – dugas
@thedugas - Je pense que c'est plus basique que ça. Je pense qu'il veut juste les données de table1 dans le format de DataTable mais ne réalise pas que le remplissage le fait déjà. –
@Mark Brittingham - Gotcha ... – dugas