【问题标题】:Put the result of the SELECT query into WPF datagrid将 SELECT 查询的结果放入 WPF 数据网格
【发布时间】:2011-12-06 20:22:20
【问题描述】:

这个想法是添加一个窗口,用户可以在其中找到数据库中的任何学生。但是我遇到了一个错误列名错误。 我的方法代码

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 代码

         <DataGrid AutoGenerateColumns="False" Height="227" HorizontalAlignment="Left" Margin="198,12,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="443" ItemsSource="{Binding}"/> 

我在数据库中有这样的名字。为什么我有这样的异常?

【问题讨论】:

  • 在非 WPF 应用程序中执行查询时会发生什么?
  • 尝试指定表(dbo)的架构并在大括号周围使用单引号。
  • 然后会有sql注入。

标签: c# sql wpf


【解决方案1】:

问题出在这行代码:

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

这需要改成:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-11
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-03
    • 2014-02-08
    • 1970-01-01
    相关资源
    最近更新 更多