C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: C#2005で既存のACCESSテーブルのインデックスの取得


(過去ログ 24 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■11037 / inTopicNo.1)  C#2005で既存のACCESSテーブルのインデックスの取得
  
□投稿者/ あぼん (1回)-(2007/12/05(Wed) 16:53:46)

分類:[C#] 

開発環境
WindowsXP SP2
 C#2005
ACCESS2003 SP3

 ACCESSのテーブル定義で、複数の主キーを設定しているのですが、
以下のプログラムでは、複数ある主キーの最後の主キーのみを取得します。
私としては、すべての主キーを取得したいのですが、どのようにすればいいのでしょうか。
もしくは、違う方法があるのでしょうか。

namespace GetTableIndexes
{
class Program
{
static void Main(string[] args)
{
string str = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\データベース名.mdb";

OleDbConnection cn = new OleDbConnection();
DataTable schemaTable;

cn.ConnectionString = str;
cn.Open();

schemaTable = cn.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, new Object[] { null, null, "テーブル名" });

Console.WriteLine(schemaTable.Rows[0].ItemArray[3].ToString());

cn.Close();
Console.ReadLine();
}
}
}

引用返信 編集キー/
■11075 / inTopicNo.2)  Re[1]: C#2005で既存のACCESSテーブルのインデックスの取得
□投稿者/ 特攻隊長まるるう (100回)-(2007/12/06(Thu) 12:05:02)
No11037 (あぼん さん) に返信
> Console.WriteLine(schemaTable.Rows[0].ItemArray[3].ToString());
Rows[0]しか出力してないですからね。
全ての行を出力してみてください。
引用返信 編集キー/
■11113 / inTopicNo.3)  Re[2]: C#2005で既存のACCESSテーブルのインデックスの取得
□投稿者/ あぼん (2回)-(2007/12/07(Fri) 09:25:14)
No11075 (特攻隊長まるるう さん) に返信
> ■No11037 (あぼん さん) に返信
>> Console.WriteLine(schemaTable.Rows[0].ItemArray[3].ToString());
> Rows[0]しか出力してないですからね。
> 全ての行を出力してみてください。

 回答ありがとうございます。

 Rows[0]というのは、ACCESSのテーブルの行のことだと思い込んでいた為、
普通に気がつきませんでした。ItemArrayは試したんですが・・・。

 試した結果、すべて取得できました。ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -