2009-09-23 8 views
1

comment affecter une valeur de base de données à des tableaux. J'ai essayé comme ça ...comment affecter des valeurs au tableau

da = new SqlDataAdapter("select emname from emp", con); 
     ds = new DataSet(); 
     da.Fill(ds, "emp"); 
     if(ds.Tables [0].Rows.Count >0) 
     { 
      for(int i=0;i<ds.Tables [0].Rows .Count ;i++) 
      { 
       string[] myArray = ds.Tables[0].Rows[i]["emname"].ToString(); 
      } 
     } 

mais il est une erreur qui ne peut pas donner de convertir la chaîne de string [] s'il vous plaît aidez-moi

Répondre

5

Essayez ceci:

da = new SqlDataAdapter("select emname from emp", con); 
ds = new DataSet(); 
da.Fill(ds, "emp"); 
if(ds.Tables[0].Rows.Count > 0) 
{ 
    string[] myArray = new string[ds.Tables[0].Rows.Count]; 
    for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
    { 
     myArray[i] = ds.Tables[0].Rows[i]["emname"].ToString(); 
    } 
    // Use myArray here... 
} 

Notez qu'il existe Il y a des façons plus simples de faire cela en utilisant LINQ, mais si vous êtes nouveau sur C# /. NET, je vous conseille de vous familiariser avec les bases avant de plonger dans LINQ.

+0

@ Surya- décider de regarder LINQ, vous allez voulez regarder LINQ à DataSet- http://msdn.microsoft.com/en-us/library/bb386977.aspx – RichardOD

+0

merci de me dire quel livre puis-je me référer –

+1

LINQ en action (Fabrice Marguerie, Steve Eichert, et Jim Wooley) et Pro LINQ (Joe Rattz) sont tous les deux bons. J'ai aussi entendu de bonnes choses sur Essential LINQ (Charlie Calvert et Dinesh Kulkarni) mais je ne l'ai pas lu. –

0

Vous essayez d'initialiser un nouveau tableau sur chaque boucle et, en plus, vous essayez de l'assigner comme une chaîne et non comme un tableau.

string [] [] myArray = ds.Tables [0] .Rows serait la bonne solution. Notez également que rows est un tableau multidimensionnel. Vous pouvez également utiliser par exemple string [] myArray = dt.Tables [0] .Rows [0] si vous voulez un tableau rempli avec une ligne spécifique.

0

Si vous voulez un tableau de tous les noms, vous pouvez simplement convertir un tableau de DataRow dans un tableau de string comme ça: si vous ne

da = new SqlDataAdapter("select emname from emp", con); 
ds = new DataSet(); 
da.Fill(ds, "emp"); 
string[] myArray = Array.ConvertAll<DataRow, string>(ds.Tables[0].Select(), 
         delegate(DataRow row) { return row["emname"].ToString(); }); 
Questions connexes