【问题标题】:How to display SQL search results in a datagrid using WPF如何使用 WPF 在数据网格中显示 SQL 搜索结果
【发布时间】:2014-08-30 06:03:12
【问题描述】:
private void Button_Click(object sender, RoutedEventArgs e)
    {
        SqlConnection sc = new SqlConnection();
        SqlCommand com = new SqlCommand();

        sc.Open();
        com.Connection = sc;
        string sql;
        {
             sql = "SELECT FROM WolfAcademyForm WHERE [Forename] == 'txtSearch.Text';";
            {
                grdSearch.ItemsSource = sql;
                sc.Close();
            }

这是我的代码,当我按下搜索按钮时,什么都没有显示...有人可以帮我解决这个问题吗,我没有收到任何错误

【问题讨论】:

  • 您分配了ItemsSource 属性您的sql 字符串?错了..您可以使用数据阅读器并填充数据表,然后绑定到您的网格..
  • 绑定不正确。 sql 在查询中引用 SELECT FROM== 似乎也不正确
  • 您应该执行命令并将结果分配给 ItemSource
  • @HassanNisar 我在里面放了一个断点,上面写着 sql null,你对如何让它搜索有什么想法吗?
  • @BenNixon。 string sql; 的声明然后在它下面加上括号没有任何意义。你的查询也不对。

标签: c# sql wpf datagrid


【解决方案1】:

使用这个

 using (SqlConnection con = new SqlConnection(ConString))

    {

        CmdString = "SELECT FROM WolfAcademyForm WHERE [Forename] == " + txtSearch.Text + ";"
        SqlCommand cmd = new SqlCommand(CmdString, con);

        SqlDataAdapter sda = new SqlDataAdapter(cmd);

        DataTable dt = new DataTable("Employee");

        sda.Fill(dt);

        grdSearch.ItemsSource = dt.DefaultView;

    }

【讨论】:

    【解决方案2】:

    问题

    SQL 查询不正确:

    1. 应该是SELECT * FROM TABLENAME
    2. 在 WHERE 子句中 [Forename] == 'txtSearch.Text'== 应使用 = 和文本框值应使用 + 连接。

    固定代码:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
    
         string sConn = @"Data Source=MYDS;Initial Catalog=MyCat;
                     User ID=MyUser;Password=MyPass;";
    
    
        using(SqlConnection sc = new SqlConnection(sConn))
        {
            sc.Open();
            string sql = "SELECT * FROM WolfAcademyForm WHERE [Forename]= @Forename";
            SqlCommand com = new SqlCommand(sql, sc);       
            com.Parameters.AddWithValue("@Forename", txtSearch.Text);
    
            using(SqlDataAdapter adapter = new SqlDataAdapter(com))
            {
               DataTable dt = new DataTable();
               adapter.Fill(dt);
               grdSearch.ItemsSource = dt.DefaultView;              
            }
        }
    }
    

    【讨论】:

    • 非常感谢您帮助我:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    相关资源
    最近更新 更多