Zet het resultaat van de SELECT-query in WPF-datagrid

Het idee was om een ​​venster toe te voegen waarin de gebruiker elke student in de database kan vinden. Ik heb echter een foutmelding dat de kolomnaam onjuist is. De code van mijn methode

string connStr = @"Data Source=.\SQLEXPRESS;
                        AttachDBFileName=C:\Users\Чак\Desktop\ботанизм\ООП\coursework.start\CourseWorkFinal\CourseWorkFinal\University11.mdf;
                        Integrated Security=True";
        SqlConnection conn = new SqlConnection(connStr);
        conn.Open();
        //idstudent={0} AND Name={1} AND Surname={2} AND Middlename={3} AND House={4} AND Street={5} AND Telephone={6}
        string BETA = string.Format("SELECT * FROM Students WHERE Name={0}", "Bob");//textbox1.Text 
        SqlDataAdapter a = new SqlDataAdapter(BETA, conn);
        DataTable x = new DataTable();
        a.Fill(x);//<-there is an exception
        this.dataGrid1.DataContext = x;
        conn.Close();

XAML-code

          

Ik heb zo'n naam in de database. Waarom heb ik zo'n uitzondering?

1
En dan zal er sql-injectie zijn.
toegevoegd de auteur H.B., de bron
Probeer het schema van de tabel (dbo) op te geven en gebruik enkele aanhalingstekens rond de accolades.
toegevoegd de auteur vorrtex, de bron
Wat gebeurt er wanneer u de query uitvoert in een niet-WPF-toepassing?
toegevoegd de auteur Jake Berger, de bron

1 antwoord

Het probleem is deze regel code:

string BETA = string.Format("SELECT * FROM Students WHERE Name={0}", "Bob");//textbox1.Text 

Dit moet worden gewijzigd in:

string BETA = string.Format("SELECT * FROM Students WHERE Name='{0}'", "Bob");//textbox1.Text 
2
toegevoegd