▼ ps.bat ( PowerShell をそのまま使えない場合は以下のバッチファイルを作成して使用します )@powershell -NoProfile -ExecutionPolicy Unrestricted "./%1.ps1"✅ build.ps1 exe 作成用 PowerShell スクリプト ✅ Program.cs アプリケーション開始 ✅ Form1.cs Form コントロール ✅ Form1.Designer.cs 画面定義 ▼ build.ps1
Add-Type -path "Program.cs", "Form1.cs", "Form1.Designer.cs" ` -ReferencedAssemblies System.Windows.Forms, System.Drawing, System.Data, System.Xml ` -OutputAssembly form-02.exe ` -OutputType WindowsApplication Read-Host "何かキーを押してください"
ソース内の固定の select 文 を使用して、MySQL にあるデータを DataGridView に表示するテンプレートです ▼ Program.cs
using System; using System.Windows.Forms; namespace form_02 { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } }
▼ Form1.cs
using System; using System.Data; using System.Data.Odbc; using System.Windows.Forms; namespace form_02 { public partial class Form1 : Form { // ***************************** // SQL文字列格納用 // ***************************** private string query = "select * from 社員マスタ"; // ***************************** // 接続文字列作成用 // ***************************** private OdbcConnectionStringBuilder builder = new OdbcConnectionStringBuilder(); public Form1() { InitializeComponent(); setBuilderData(); } // ***************************** // 接続文字列の準備 // ***************************** private void setBuilderData() { // ドライバ文字列をセット ( 波型括弧{} は必要ありません ) // builder.Driver = "MySQL ODBC 8.0 Unicode Driver"; builder.Driver = "MySQL ODBC 5.3 Unicode Driver"; // 接続用のパラメータを追加 builder.Add("server", "localhost"); builder.Add("database", "lightbox"); builder.Add("uid", "root"); builder.Add("pwd", ""); } // ***************************** // SELECT 文よりデータ表示 // ***************************** private void loadMySQL() { // 接続と実行用のクラス using (OdbcConnection connection = new OdbcConnection()) using (OdbcCommand command = new OdbcCommand()) { // 接続文字列 connection.ConnectionString = builder.ConnectionString; try { // 接続文字列を使用して接続 connection.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } // コマンドオブジェクトに接続をセット command.Connection = connection; // コマンドを通常 SQL用に変更 command.CommandType = CommandType.Text; // ***************************** // 実行 SQL // ***************************** command.CommandText = query; try { // レコードセット取得 using (OdbcDataReader reader = command.ExecuteReader()) { // データを格納するテーブルクラス DataTable dataTable = new DataTable(); // DataReader よりデータを格納 dataTable.Load(reader); // 画面の一覧表示用コントロールにセット dataGridView1.DataSource = dataTable; // リーダを使い終わったので閉じる reader.Close(); } } catch (Exception ex) { // 接続解除 connection.Close(); MessageBox.Show(ex.Message); return; } // 接続解除 connection.Close(); } // カラム幅の自動調整 dataGridView1.AutoResizeColumns(); } private void button1_Click(object sender, EventArgs e) { loadMySQL(); } } }
▼ Form1.Designer.cs
namespace form_02 { partial class Form1 { private System.ComponentModel.IContainer components = null; protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } private void InitializeComponent() { this.dataGridView1 = new System.Windows.Forms.DataGridView(); this.button1 = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); this.SuspendLayout(); // // dataGridView1 // this.dataGridView1.AllowUserToAddRows = false; this.dataGridView1.AllowUserToDeleteRows = false; this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dataGridView1.Location = new System.Drawing.Point(18, 70); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.ReadOnly = true; this.dataGridView1.RowTemplate.Height = 21; this.dataGridView1.Size = new System.Drawing.Size(760, 351); this.dataGridView1.TabIndex = 0; // // button1 // this.button1.Location = new System.Drawing.Point(18, 21); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(190, 31); this.button1.TabIndex = 1; this.button1.Text = "実行"; this.button1.UseVisualStyleBackColor = true; this.button1.Click += new System.EventHandler(this.button1_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(800, 450); this.Controls.Add(this.button1); this.Controls.Add(this.dataGridView1); this.Name = "Form1"; this.Text = "SELECT 実行結果の表示"; ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); this.ResumeLayout(false); } private System.Windows.Forms.DataGridView dataGridView1; private System.Windows.Forms.Button button1; } }
|
【PowerShell + C#の最新記事】
- nuget.exe CLI を使用してパッケージをダウンロードし、C# のソースコードで利用して PowerShell でビルドする
- PowerShell を使用して、C# のコンソールアプリ用のソースコードから exe を作成する( WebClient で wget.exe ) / ビルドせずに PowerShell で実行
- PowerShell で VisualStudio で作成した Form アプリケーションをビルドする( Form アプリケーションを テキストエディタのみで作成するテンプレート )
- TKMP + imap + C# + PowerShell : メールボックス(階層)の一覧表示
- nuget.exe + SMO + PowerShell + C# : テーブルの CREATE TABLE 文 を取得
- PowerShell( 実質C# )を使用して、ファイルの分割を行う
- PowerShell( 実質C# )を使用して、MessageBox の応答でバッチファイルの処理を変化させる
- PowerShell で C# のソースコード(get_rec_mysql.cs) を使用して System.Data.Odbc で MySQL のデータを一覧表示( csv )