从.NET中的MS Access查询中获取参数名称

时间:2013-04-03 23:41:13

标签: c# .net ms-access oledb

我有这个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]是表中的列还是需要提供的参数,与[昵称]。我想我可以查找更多的模式信息来获取所有的字段名称...但希望有一种更简单的方法吗?

我正在尝试创建一个Winforms .NET C#表单,其中包含来自给定MDB文件的查询列表。用户可以选择任何这些查询,然后我将在DataGridView中显示结果。为了显示结果,我需要执行查询,但如果我没有提供正确的参数,我就无法执行查询。

0 个答案:

没有答案