3

我正在尝试使用我已经拥有的表名从数据库中获取 DataTable 对象。(我的意思是我想在多个表之间进行选择。为此,我只有一个代表表名的字符串。所以我正在寻找一种方法来获取实际对象。)

我怎样才能做到这一点?

我已经尝试过:

DataTable table = new DataTable(TableName);

但我相信这是错误的。(应用程序应该如何知道该表名来自哪里或在哪里搜索它?)

我尝试使用con.GetSchema("Tables"),但它只给出了字符串的表名,而不是 DataTable 对象。我也试过这个,但似乎 DataTables 不可枚举:

public static DataTable GetTable(string TableName, string conncetionstring)
{
    SqlConnection con = new SqlConnection(conncetionstring);
    foreach (DataTable table in con.GetSchema("Tables"))
    {
        if (table.TableName == TableName)
        {
            return table;
        }
    }
    return null;
}
4

1 回答 1

4

你是对的。架构需要出现在某个地方这是我用来连接和获取表的典型代码。

string Sql="SELECT * FROM MYTABLE WHERE 1=0";
string connectionstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MYDATA.MDB;"

OleDbConnection new OleDbConnection(connectionstring);
conn.Open();
OleDbCommand cmd = new OleDbCommand(Sql, conn);
OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
conn.Close();
于 2012-07-31T11:32:56.533 回答