从SQL查询引用控件

时间:2013-09-11 02:04:13

标签: c# sql combobox

我使用C#链接我拥有的Access数据库。我在VS中使用数据源配置向导添加了这个数据库,现在我尝试运行了几个查询。

这是我遇到问题的查询,我认为我尝试从查询中引用组合框时遇到问题。

SELECT DISTINCT Column2
FROM            MyTable
WHERE           Column1 = cboMyComboBox.Text
ORDER BY        Column2

MyTable中的数据样本

Column1     Column2
Male        Bob
Female      Jane
Male        Jim
Male        John
Female      Jill

让我们说cboMyComboBox中的值是'男性'

我试图让查询返回' Bob' Jim'和' John'

我对此非常陌生,所以我可能会遗漏一些完全明显的东西,并随时向我推荐任何正确执行此操作的指南。 (它可能与参数有关...?我是否需要将某些内容传递给此查询?)

我收到的错误是"没有给出一个或多个必需参数的值"

2 个答案:

答案 0 :(得分:1)

string query = String.Format(
                 @"SELECT DISTINCT Column2 FROM MyTable 
                   WHERE Column1 = '{0}' ORDER Y Column2", cboMyComboBox.Text);

否则sql查询将尝试将column1与字符串cboMyComboBox.Text完全匹配,而不是其中的数据。

完整形式:

public DataTable dattab;
public void GetData()
{
    //setup the parameters for connecting
    string connString = @"";// You need to define you connection string here.
    string query = String.Format(@"SELECT DISTINCT Column2 FROM MyTable WHERE Column1 = '{0}' ORDER Y Column2", cboMyComboBox.Text);

    //Create the connection and commmand objects, then open a connection to the DB.
    SqlConnection conn = new SqlConnection(connString);        
    SqlCommand cmd = new SqlCommand(query, conn);
    conn.Open();

    //Retrieve the data and fill the datatable
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dattab);

    //Close off connections
    conn.Close();
    da.Dispose();
}

答案 1 :(得分:0)

想出来 - 在查询属性中有一个添加参数的选项 - 我可以在这里添加它然后在运行查询方法时传递组合框值:

tableAdapter.GetColumn1Data(cboMyComboBox.Text)

Table Adapter