我正在尝试使用我已经使用的表名从数据库中获取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;
}
答案 0 :(得分: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();