我使用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'
我对此非常陌生,所以我可能会遗漏一些完全明显的东西,并随时向我推荐任何正确执行此操作的指南。 (它可能与参数有关...?我是否需要将某些内容传递给此查询?)
我收到的错误是"没有给出一个或多个必需参数的值"
答案 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)