1. ホーム
  2. c#

[解決済み] DataTableからデータを抽出する方法を教えてください。

2023-04-14 03:28:34

質問

私は DataTable があり、SQLクエリからローカルデータベースに入力されますが、そこからデータを抽出する方法がわかりません。 メインメソッド(テストプログラム内)です。

static void Main(string[] args)
{
    const string connectionString = "server=localhost\\SQLExpress;database=master;integrated Security=SSPI;";
    DataTable table = new DataTable("allPrograms");

    using (var conn = new SqlConnection(connectionString))
    {
        Console.WriteLine("connection created successfuly");

        string command = "SELECT * FROM Programs";

        using (var cmd = new SqlCommand(command, conn))
        {
            Console.WriteLine("command created successfuly");

            SqlDataAdapter adapt = new SqlDataAdapter(cmd);

            conn.Open(); 
            Console.WriteLine("connection opened successfuly");
            adapt.Fill(table);
            conn.Close();
            Console.WriteLine("connection closed successfuly");
        }
    }

    Console.Read();
}

データベースのテーブルを作成するために使ったコマンドです。

create table programs
(
    progid int primary key identity(1,1),
    name nvarchar(255),
    description nvarchar(500),
    iconFile nvarchar(255),
    installScript nvarchar(255)
)

のデータを抽出するにはどうすればよいのでしょうか? DataTable からデータを取り出し、意味のある形で使用するにはどうしたらよいでしょうか?

どのように解決するのですか?

DataTableにはコレクション .Rows のDataRow要素の集まりです。

各DataRowはデータベースの1行に対応し、カラムのコレクションを含んでいます。

一つの値にアクセスするためには、次のようにします。

 foreach(DataRow row in YourDataTable.Rows)
 { 
     string name = row["name"].ToString();
     string description = row["description"].ToString();
     string icoFileName = row["iconFile"].ToString();
     string installScript = row["installScript"].ToString();
 }