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 に答える