从文本框的选定文本中将数据提取到datagridview中

时间:2013-12-30 03:58:21

标签: c#

在文本框中我正在获取城市名称,当我选择任何城市名称时,与该城市相关的信息应显示在datagridview上,以获取有关我使用外键的状态的其他信息,因为状态表不同并且其信息存储在另一个表中,所以我从外键state_id获取该信息。这是我的代码

DataTable dt = new DataTable();
SqlDataAdapter tda = new SqlDataAdapter("SELECT a1.type,a1.state_id,a1.desc1,a1.from_date,a1.to_date,a1.expr1005 FROM item_rate a1 FULL OUTER JOIN item_rate_state a2 ON a1.state_id=a2.state_id WHERE state_name='" + textBox2.Text + "'", scon);
            tda.Fill(dt);
            dataGridView2.DataSource = dt;

2 个答案:

答案 0 :(得分:1)

查询似乎有点不对

应该是

SqlDataAdapter tda = new SqlDataAdapter("SELECT a1.type,a1.state_id,a1.desc1,a1.from_date,a1.to_date,a1.expr1005 FROM item_rate a1 FULL OUTER JOIN item_rate_state a2 ON a1.state_id=a2.state_id WHERE a2.state_name='" + textBox2.Text + "'", scon);

我建议您使用SqlCommand并添加参数以正确查询,因为您的代码很容易被sql注入!


根据评论回答。

因为你现在想要显示文本框为空时的任何记录,简单TextChanged事件就这样做

if (!String.IsNotNullOrEmpty(textBox2.Text))
{

    DataTable dt = new DataTable();
    SqlDataAdapter tda = new SqlDataAdapter("SELECT a1.type,a1.state_id,a1.desc1,a1.from_date,a1.to_date,a1.expr1005 FROM item_rate a1 FULL OUTER JOIN item_rate_state a2 ON a1.state_id=a2.state_id WHERE a2.state_name='" + textBox2.Text + "'", scon);
    tda.Fill(dt);
    dataGridView2.DataSource = dt;

}

答案 1 :(得分:0)

你试试这个

在设计页面

中设置textBox2.AutoPostBack="True"
 protected void textBox2_TextChanged(object sender, EventArgs e)
    {
DataTable dt = new DataTable();
SqlDataAdapter tda = new SqlDataAdapter("SELECT a1.type,a1.state_id,a1.desc1,a1.from_date,a1.to_date,a1.expr1005 FROM item_rate a1 FULL OUTER JOIN item_rate_state a2 ON a1.state_id=a2.state_id WHERE state_name='" + textBox2.Text + "'", scon);
            tda.Fill(dt);
            dataGridView2.DataSource = dt;
    }