2016-06-20 39 views
0

Ich habe Probleme, dies herauszufinden, ich möchte den Namen, den ich mit der Methode als Name der neuen Klassenvariablen, die ich versuche, zu senden versuchen. Das habe ich jetzt.Zeichenfolge als Name der neuen Klassenvariable

public void GetDier(string naam) 
{ 
    string query = "SELECT * FROM [Dieren] WHERE Diersoort = '" + naam + "'"; 
    sqlconn.Open(); 
    SqlCommand cmd = new SqlCommand(query, sqlconn); 
    SqlDataReader DR = cmd.ExecuteReader(); 
    string diernaam = DR.GetString(1); 
    int currency = DR.GetInt32(2); 
    int TPnodig = DR.GetInt32(3); 
    Dieren naam = new Dieren(diernaam, TPnodig, currency); 
} 

Ich möchte die Zeichenfolge naam machen, als den neuen Namen des neuen dier wie ich versuche, oben in dem Stück Code zu tun.

+3

Nie Zeichenfolge concatentation für den Aufbau von SQL-Abfragen verwenden. –

Antwort

0

Sie können eine Variable nicht als Name einer anderen Variablen verwenden. Und ehrlich gesagt macht das keinen Sinn. Der Name einer Variablen ist nur für Sie als Programmierer nützlich, nicht für das Endergebnis des Codes.

Beachten Sie auch, dass Ihr SQL anfällig für SQL-Injection ist. Verwenden Sie immer parametrisierte Abfragen!

+0

Das Problem ist, dass ich jeden Dier, den ich in meinem Dieren-Tisch habe, herausnehmen und zur Klasse hinzufügen möchte. Das war der einzige Weg, an den ich denken konnte, haben Sie vielleicht eine andere Lösung? – RensvDijck

+0

Sie möchten sie also in eine Liste oder ein Wörterbuch stopfen? –

+0

In einer Liste dann. – RensvDijck

1

Hier haben Sie eine sicherere Methode die Daten von db zu erhalten:

public Dieren GetDier(string naam) 
     { 
      var con = ConfigurationManager.ConnectionStrings["Yourconnection"].ToString(); 
Dieren naamValue= new Dieren(); 
      using (SqlConnection myConnection = new SqlConnection(con)) 
      { 
       string oString ="SELECT * FROM [Dieren] WHERE Diersoort = @Diersoort"; 
       SqlCommand oCmd = new SqlCommand(oString, myConnection); 
       oCmd.Parameters.AddWithValue("@Diersoort", naam);   
       myConnection.Open(); 
       using (SqlDataReader oReader = oCmd.ExecuteReader()) 
       { 
        while (oReader.Read()) 
        {  
         naamValue.naam= oReader["naam"].ToString();      
        } 

        myConnection.Close(); 
       }    
      } 
      return naamValue; 
     } 
Verwandte Themen