c# - 如何在 C# 中使用表名从数据库中获取 DataTable 对象?

标签 c# sql datatable

我正在尝试使用我已有的表名从数据库中获取 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;
}

最佳答案

你是对的。模式需要到达某个地方 这是我用来连接和获取表格的典型代码。

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();

关于c# - 如何在 C# 中使用表名从数据库中获取 DataTable 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11739033/

相关文章:

c# - 当页面包含 View 状态变量时加载 View 状态失败

sql - 如何将这两个表连接在一起(MySQL,分层查询)?

java - 从java运行sqlplus脚本的简单方法

c# - 根据数据表输入删除SQL表上的数据

c# - 林克 : doing a Where() clause on a nested model

c# - 为字符串 c# 创建自定义事件

c# - TypedFactory 在组件将其用作依赖项之前处理

mysql - SQL - 用联合重复一行

C# 在没有 LINQ 的情况下加入 2 个数据表