我有这个 C# 代码,它从 MDB 文件中获取第一个查询并执行它:
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\db1.mdb");
conn.Open();
DataTable dt = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Procedures, null);
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.CommandText = dt.Rows[0]["PROCEDURE_DEFINITION"].ToString();
cmd.ExecuteReader();
我在最后一行收到错误,因为我没有为所需参数提供值。我希望此代码适用于任何查询,具有任意数量的参数,那么对于给定的查询,如何从 Access 获取参数列表?这样,我可以提示用户为每个值提供值,就像 Access 所做的那样。
我不认为我可以自己解析它们,因为查询可能如下所示:
从 [名称] = [昵称] 的订单中选择 *
在不知道表的所有字段名称的情况下(通过大量 JOINS 变得非常复杂),我不知道 [Name] 是表中的列还是需要提供的参数,与 [Nickname] 相同。我想我可以查找更多架构信息以获取所有字段名称......但希望有更简单的方法?
我正在尝试创建一个 Winforms .NET C# 表单,其中包含来自给定 MDB 文件的查询列表。用户可以选择这些查询中的任何一个,然后我将在 DataGridView 中显示结果。为了显示结果,我需要执行查询,但如果我不提供正确的参数,我将无法执行查询。