True DBGrid for WinForms の重要な機能として、実行時にデータベースに対する変更を自動的に検出できることがあります。このチュートリアルでは、True DBGrid for WinFormsを使用して、アドホックなSQLクエリーの結果を表示する方法を学びます。さらに、実行中にデータセットへの接続をセットアップする方法について簡単に説明します。設計時に列のプロパティを特に定義しなくても、グリッドが自動的にフィールドレイアウトの変更に応答できることに注意してください。レイアウトがすでに定義されている場合は、グリッドのフィールドのクリアコンテキストメニューコマンドを使って削除します。これにより、実行時にグリッドが自動的に自分自身を設定します。
以下の手順を実行します。
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Me.CustomersTableAdapter.Fill(Me.DsCustomers.Customers) |
C# コードの書き方
C# |
コードのコピー
|
---|---|
this.CustomersTableAdapter.Fill(this.DsCustomers.Customers); |
Visual Basic コードの書き方
Visual Basic |
コードのコピー
|
---|---|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim sqlStr As String = TextBox1.Text Dim da as Oledb.OleDbDataAdapter = New Oledb.OleDbDataAdapter (sqlStr, Me.CustomersTableAdapter.Connection) Dim ds As DataSet = New DataSet() ds.Clear() Try da.Fill(ds, "クエリー結果") Me.C1TrueDBGrid1.DataSource = Nothing Me.C1TrueDBGrid1.ClearFields() Me.C1TrueDBGrid1.SetDataBinding(ds.Tables("mySQL"), "", False) Catch MessageBox.Show("SQL文のエラー") End Try End Sub |
C# コードの書き方
C# |
コードのコピー
|
---|---|
private void button1_Click(System.object sender, System.EventArgs e) { string sqlStr = TextBox1.Text; da as Oledb.OleDbDataAdapter = New Oledb.OleDbDataAdapter (sqlStr, this.CustomersTableAdapter.Connection); DataSet DataSet ds = new DataSet(); ds.Clear(); try { da.Fill(ds, "クエリー結果"); this.c1TrueDBGrid1.DataSource = null; this.c1TrueDBGrid1.ClearFields(); this.c1TrueDBGrid1.SetDataBinding(ds.Tables["mySQL"], "", false); } catch () { MessageBox.Show ("SQL文のエラー"); } } |
チュートリアル1:C1TrueDBGrid を DataSet に連結すると同様に、True DBGrid for WinForms は、DataSet からデータベーススキーマ情報を取得し、データベーステーブル内のすべてのフィールドのデータを表示するように自動的に自分自身を設定します。フィールド名がデフォルトの列ヘッダとして使用されます。
TextBox コントロールに次のSQL文を追加します:
Select * from Customer
SQLの実行コマンドボタンを押します。デフォルト表示と同様にCustomerテーブルのすべてのフィールドが表示されます。
TextBox コントロールに次のSQL文を追加します。
Select Company from Customer
SQLの実行ボタンを押します。グリッドにCompanyフィールドに属する会社名列が表示されます。
TextBox コントロールに以下のSQL文を追加します:
Select LastName, Company from Customer
SQLの実行コマンドボタンを押します。上のSQL文と同様にグリッドに指定された列(この場合はCompanyフィールドに属する会社列とLastNameフィールドに属する姓列)が表示されます。
TextBox コントロールに以下のSQL文を追加します:
Select Count(*) from Customer
SQLの実行コマンドボタンを押します。上のSQL文をは、集計関数、Count(*):SQLを使用して、Customer テーブルのレコードの合計数を返します。SQL の結果が一連のれ湖度ではなくても、リストの1つの列にレコードの数が正しく表示されます。デフォルトでは、列ヘッダとしてExpr1000が使用されます。これは、式の結果が表示されていることを表示します。
TextBox コントロールに以下のSQL文を追加します:
Select UCase(LastName) as ULAST, UCase(FirstName) AS UFIRST from Customer
SQLの実行コマンドボタンを押します。上のSQL文は名前フィールドと姓フィールドを大文字で表示する2つの計算列を生成します。また、列ヘッダには、(割り当てられた)計算列名として ULAST と UFIRST が表示されます。
TextBox コントロールに以下のSQL文を追加します:
SELECT * FROM Customer WHERE FirstName = "Jerry"
SQLの実行コマンドボタンを押します。上のSQL文は、名前列がJerryであるレコードだけを表示します。
TextBox コントロールに以下のSQL文を追加します:
SELECT * FROM Customer ORDER BY LastName
SQLの実行コマンドボタンを押します。上のSQL文は、姓フィールドのアルファベット順でレコードを表示します。
SQL 文を使用して、2つのデータベーステーブルを結合することもできます。チュートリアル3: 複数の C1TrueDBGrid コントロールをリンクするを参照してください。
これでチュートリアル 2は終了です。