Je vous suggère que la meilleure option ici est pas vraiment un SqlDataAdapter
et DataSet
, mais plutôt un SqlCommand
. Essayez ceci:
using(SqlConnection conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true"))
{
conn.Open()
using (SqlCommand command = new SqlCommand("select total_amount from debit_account where account_no=12", conn)
{
var result = command.ExecuteScalar();
Console.WriteLine("The total_amount for the account is {0}", result);
}
}
La méthode ExecuteScalar()
sur SqlCommand
renvoie la valeur dans la première colonne de la première ligne que vos déclarations de requête, ce qui est idéal dans cette situation.
Si vous avez absolument d'utiliser un ensemble de données alors vous voulez faire ce qui suit:
using(SqlConnection conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true"))
{
conn.Open()
using (SqlDataAdapter adapter = new SqlDataAdapter("select total_amount from debit_account where account_no=12", conn)
{
var ds = new DataSet();
adapter.Fill(ds);
Console.WriteLine("The total_amount for the account is {0}", ds.Tables[0].Rows[0][0]); // Get the value from the first column of the first row of the first table
}
}
Note:J'ai enveloppé les deux exemples dans le using
statement C#, ce qui garantit que toutes vos ressources de base de données sont nettoyées pour que vous n'ayez aucun problème avec des ressources non managées qui fuient. Il n'est pas particulièrement difficile ou compliqué et vaut vraiment la peine de le faire
Définissez la source de données de certains contrôles comme un DataGrid/Repeater etc - en fonction de la façon dont vous voulez afficher les résultats, puis faites un DataBind par exemple DataGrid display = new DataGrid() ; display.DataSource = ds; display.DataBind(); – InSane