0

我正在使用 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 中的值是 'Male'

我试图让查询返回“Bob”、“Jim”和“John”

我对此很陌生,所以我可能遗漏了一些完全明显的东西,请随时向我推荐有关正确执行此操作的任何指南。(它可能与参数有关......?我需要向这个查询传递一些东西吗?)

我收到的错误是“没有为一个或多个必需参数提供值”

4

2 回答 2

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();
}
于 2013-09-11T02:13:34.397 回答
0

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

tableAdapter.GetColumn1Data(cboMyComboBox.Text)

表适配器

于 2013-09-11T02:33:47.807 回答