2010-08-24 5 views
2
conn = new SqlConnection(@"Data Source=ASHISH-PC\SQLEXPRESS; initial catalog=bank; integrated security=true"); 
ada = new SqlDataAdapter("select total_amount from debit_account where account_no=12", conn); 
ds = new DataSet(); 

ada.Fill(ds); 

Maintenant, je veux imprimer la valeur de l'ensemble de données ... comment? Aidez-moi, s'il vous plaît.comment imprimer la valeur unique de l'ensemble de données

+0

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

Répondre

3

Je pense que, dans ce cas, vous seriez mieux (sage-performance) d'utiliser un SqlCommand au lieu de l'adaptateur et ensemble de données, et invoquez la méthode ExecuteScalar.

Voir http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executescalar.aspx

Si vous devez utiliser l'ensemble de données, cependant, ds.Tables[0].Rows[0]["total_amount"] devrait récupérer votre valeur. Vous aurez probablement besoin de taper cast la valeur, cependant.

6

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

+0

+1. Cet exemple est complet et gère correctement les classes 'IDisposable'. – kbrimington

+0

merci rob ... ça marche bien – ashish

+0

@ashish, si cela répond à votre question, veuillez cliquer sur la coche creuse à gauche de cette réponse pour la marquer comme votre "réponse acceptée" =) – Rob

Questions connexes