SQL Abfrage mit einem String



  • Ich steh grad auf dem Schlauch.

    public int GetCategoryID(String Name)
    {
        String Selectstr = "SELECT KID FROM [Category] ";
        Selectstr += "WHERE (Name LIKE @Name)";
    
        SqlConnection con = new SqlConnection(ConnectionString);
        SqlCommand cmd = new SqlCommand(Selectstr);
    
        cmd.Parameters.AddWithValue("@Name", Name);
    
        SqlDataAdapter Adapter = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
    
        try
        {
            con.Open();
            Adapter.Fill(ds, "[Category]");
        }
        catch (Exception err)
        {
            throw err;
        }
        finally
        {
            con.Close();
        }
        return (int)ds.Tables["[Category]"].Rows[0]["KID"];
    }
    

    In Zeile 17 wird immer eine Exception geworfen. Wie muss ich die SQL-Abfrage schreiben, damit die Abfrage funktioniert? Oder liegt der Fehler vielleicht woanders?

    EDIT: Ok es hat sich erledigt. Ich habe bei SqlCommand den falschen Konstruktor verwendet.



  • Verwende besser die using-Anweisung für die SqlConnection und den SqlCommand (dann ersparst du dir den try-catch-finally).
    Und bei der Rückgabe frag lieber vorher ab, ob überhaupt eine Zeile gefunden wurde...



  • Oder noch besser, du verwendest LINQ To SQL 😃



  • Es wäre daher immer gut, wenn die Threadersteller ihre .NET-Version (bzw. die VS) dabeischreiben würden...


Anmelden zum Antworten