2013-08-27 1 views
3

Je veux récupérer des données d'une table dans le serveur sql appelé l'hôtel en utilisant l'instruction select WHERE et j'obtiens l'erreur ci-dessus. Quelqu'un peut-il aider?erreur asp.net: Impossible de convertir implicitement le type 'objet' en 'chaîne'. Une conversion explicite existe (manque-t-il un cast?)

SqlConnection cnn = new 
     SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ToString()); 
cnn.Open(); 
SqlCommand cmd = new SqlCommand(); 
cmd.CommandText = "SELECT RoomsAvailable FROM Hotel WHERE HotelName = '" + 
        this.DropDownList1.Text + "'"; 
cmd.Connection = cnn; 
SqlDataAdapter da = new SqlDataAdapter(); 
da.SelectCommand = cmd; 
DataSet ds = new DataSet(); 
da.Fill(ds, "Hotel"); 
SqlCommandBuilder cb = new SqlCommandBuilder(da); 
DataRow dsRow = null; 
foreach (DataRow dsRow_loopVariable in ds.Tables["Hotel"].Rows) 
{ 
    dsRow = dsRow_loopVariable; 
    //This line is where the error comes in. 
    this.txtHotel.Text = (dsRow["RoomsAvailable"]); 
} 
+3

Avez-vous essayé 'dsRow [ "salons pourvos"]. ToString()'? – I4V

+1

Modifier 'dsRow [" RoomsAvailable "]' à 'dsRow [" RoomsAvailable "]. ToString()' – shahkalpesh

Répondre

5

changement

this.txtHotel.Text = (dsRow["RoomsAvailable"]); 

Pour

this.txtHotel.Text = (dsRow["RoomsAvailable"].ToString()); 
1

Ou changer pour

this.txtHotel.Text = dsRow["RoomsAvailable"] as string; 

et vous ne recevrez pas une exception si la valeur est nulle.

1

Essayez ce code

this.txtHotel.Text = Convert.ToString (dsRow["RoomsAvailable"]); 
0

dsRow["RoomsAvailable"] Est-ce un objet de type DataRow, si vous voulez la valeur de chaîne que vous devez appeler ToString():

this.txtHotel.Text = (dsRow["RoomsAvailable"].ToString()); 

0

Eh bien i vu ce code

cmd.CommandText = "SELECT RoomsAvailable FROM Hotel WHERE HotelName = '" + 
        this.DropDownList1.Text + "'"; 

et this.DropDownList1.Text ira chercher la valeur sélectionnée et non le texte. juste avez-vous donné HotelNames comme valeurs dropdown?

et erreur Essayez

Convert.ToString(dsRow ["RoomsAvailable"]); 
Questions connexes