This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
dev:odbc:sample_net [2015/01/28 01:50] doc created |
dev:odbc:sample_net [2016/06/28 22:38] (current) |
||
---|---|---|---|
Line 3: | Line 3: | ||
====== Development: ODBC Interface ====== | ====== Development: ODBC Interface ====== | ||
- | [[dev:odbc:home|Overview]] | [[dev:odbc:datasources|ODBC Datasources]] | [[dev:odbc:sample_c|Sample C# Program]] | **[[dev:odbc:sample_net|Sample .NET Program]]** | + | [[dev:odbc:home|Overview]] | [[dev:odbc:datasources|ODBC Datasources]] | [[dev:odbc:sample_c|Sample C# .NET Console Program]] | **[[dev:odbc:sample_net|Sample C# .NET Windows Program]]** |
---- | ---- | ||
- | ===== Sample C# Program ===== | + | ===== Sample C# .NET Windows Program ===== |
- | The following is a very simple C# program that shows a basic connection to an Omnidex Environment and simple query processing. | + | The following is a very simple C# .NET Windows program that shows a basic connection to an Omnidex Environment and simple query processing. |
<code csharp> | <code csharp> | ||
using System; | using System; | ||
using System.Collections.Generic; | using System.Collections.Generic; | ||
- | using System.Text; | + | using System.ComponentModel; |
+ | using System.Data; | ||
using System.Data.Odbc; | using System.Data.Odbc; | ||
+ | using System.Drawing; | ||
+ | using System.Linq; | ||
+ | using System.Text; | ||
+ | using System.Threading.Tasks; | ||
+ | using System.Windows.Forms; | ||
- | namespace OdxODBCSample | + | namespace OdxOdbcNetDemo |
{ | { | ||
- | class OdxODBCSample | + | public partial class MainForm : Form |
{ | { | ||
- | static void Main(string[] args) | + | private OdbcConnection _connection; |
+ | |||
+ | public MainForm() | ||
{ | { | ||
- | Console.WriteLine("Omnidex Sample C# Program"); | + | InitializeComponent(); |
+ | tbHost.Text = "localhost"; | ||
+ | tbPort.Text = "7555"; | ||
+ | } | ||
+ | |||
+ | private void buttonConnect_Click(object sender, EventArgs e) | ||
+ | { | ||
+ | if (string.IsNullOrEmpty(tbEnvironment.Text)) | ||
+ | { | ||
+ | MessageBox.Show("Please enter Omnidex Environment Filename"); | ||
+ | return; | ||
+ | } | ||
+ | if (string.IsNullOrEmpty(tbHost.Text)) | ||
+ | { | ||
+ | MessageBox.Show("Please enter Host"); | ||
+ | return; | ||
+ | } | ||
+ | if (string.IsNullOrEmpty(tbPort.Text)) | ||
+ | { | ||
+ | MessageBox.Show("Please enter port number"); | ||
+ | return; | ||
+ | } | ||
- | string connString = | ||
- | @"DRIVER={Omnidex};CONNECTIONSTRING=[server1:7555]c:\class\simple.xml"; | ||
- | string sqlselect = @"select NAME, PHONE from INDIVIDUALS"; | ||
- | OdbcConnection conn = null; | ||
- | OdbcDataReader reader = null; | ||
try | try | ||
{ | { | ||
- | // Open Connection | + | if (_connection != null) |
- | conn = new OdbcConnection(connString); | + | |
- | conn.Open(); | + | |
- | // Execute the SQL statement | + | |
- | OdbcCommand cmd = new OdbcCommand(sqlselect, conn); | + | |
- | reader = cmd.ExecuteReader(); | + | |
- | // Display output header | + | |
- | Console.WriteLine("NAME\tPHONE\n"); | + | |
- | // Process the result set | + | |
- | while (reader.Read()) | + | |
{ | { | ||
- | Console.WriteLine( | + | if (_connection.State != ConnectionState.Closed) |
- | "{0}\t{1}", | + | _connection.Close(); |
- | reader.GetString(0), | + | |
- | reader.GetString(1) | + | |
- | ); | + | |
} | } | ||
- | } // try | + | else |
- | catch (Exception e) | + | _connection = new OdbcConnection(); |
+ | |||
+ | if (tbEnvironment.Text.StartsWith("DSN=") || | ||
+ | tbEnvironment.Text.StartsWith("FILEDSN=")) | ||
+ | { | ||
+ | // connecting to an Omnidex environment file using a machine or file ODBC DataSource | ||
+ | _connection.ConnectionString = tbEnvironment.Text; | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | // connecting to an Omnidex environment file without an ODBC DataSource | ||
+ | _connection.ConnectionString = string.Format("DRIVER=OMNIDEX;ENV=[{0}:{1}]{2}", | ||
+ | tbHost.Text, tbPort.Text, tbEnvironment.Text); | ||
+ | } | ||
+ | |||
+ | _connection.Open(); | ||
+ | |||
+ | MessageBox.Show("Connected"); | ||
+ | } | ||
+ | catch (Exception ex) | ||
{ | { | ||
- | Console.WriteLine("Sql Error: " + e); | + | MessageBox.Show(ex.Message); |
} | } | ||
- | finally | + | } |
+ | |||
+ | private void buttonExecute_Click(object sender, EventArgs e) | ||
+ | { | ||
+ | if (string.IsNullOrEmpty(tbSQL.Text)) | ||
+ | return; | ||
+ | |||
+ | if (_connection == null || _connection.State != ConnectionState.Open) | ||
{ | { | ||
- | try | + | MessageBox.Show("Not connected."); |
+ | return; | ||
+ | } | ||
+ | |||
+ | // clear result grid | ||
+ | if (dgvResult.DataSource != null) | ||
+ | dgvResult.DataSource = null; | ||
+ | else | ||
+ | { | ||
+ | dgvResult.Rows.Clear(); | ||
+ | dgvResult.Columns.Clear(); | ||
+ | } | ||
+ | |||
+ | OdbcCommand cmd = null; | ||
+ | OdbcDataReader reader = null; | ||
+ | try | ||
+ | { | ||
+ | cmd = new OdbcCommand(tbSQL.Text, _connection); | ||
+ | |||
+ | if (tbSQL.Text.StartsWith("SELECT", StringComparison.CurrentCultureIgnoreCase)) | ||
{ | { | ||
- | if (reader != null) | + | reader = cmd.ExecuteReader(); |
- | reader.Close(); | + | |
- | if (conn != null) | + | DataTable dt = new DataTable(); |
- | conn.Close(); | + | dt.Load(reader); |
+ | |||
+ | dgvResult.DataSource = dt; | ||
+ | dgvResult.ColumnHeadersVisible = true; | ||
+ | dgvResult.AutoGenerateColumns = true; | ||
+ | dgvResult.Refresh(); | ||
} | } | ||
- | catch (Exception e) | + | else |
{ | { | ||
- | Console.WriteLine("Close Error: " + e); | + | int count = cmd.ExecuteNonQuery(); |
+ | |||
+ | dgvResult.ColumnHeadersVisible = false; | ||
+ | dgvResult.AutoGenerateColumns = false; | ||
+ | dgvResult.Columns.Add(new DataGridViewTextBoxColumn()); | ||
+ | dgvResult.Rows.Add(string.Format("{0} row(s) affected", count)); | ||
} | } | ||
} | } | ||
+ | catch (Exception ex) | ||
+ | { | ||
+ | MessageBox.Show(ex.Message); | ||
+ | } | ||
+ | finally | ||
+ | { | ||
+ | if (reader != null) | ||
+ | reader.Close(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | private void MainForm_FormClosing(object sender, FormClosingEventArgs e) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | if (_connection != null && _connection.State != ConnectionState.Closed) | ||
+ | _connection.Close(); | ||
+ | } | ||
+ | catch (Exception) | ||
+ | { } | ||
} | } | ||
} | } | ||
Line 74: | Line 161: | ||
</code> | </code> | ||
+ | The following designer provides the source code for the form referenced in the program above. | ||
+ | |||
+ | <code csharp> | ||
+ | namespace OdxOdbcNetDemo | ||
+ | { | ||
+ | partial class MainForm | ||
+ | { | ||
+ | /// <summary> | ||
+ | /// Required designer variable. | ||
+ | /// </summary> | ||
+ | private System.ComponentModel.IContainer components = null; | ||
+ | |||
+ | /// <summary> | ||
+ | /// Clean up any resources being used. | ||
+ | /// </summary> | ||
+ | /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | ||
+ | protected override void Dispose(bool disposing) | ||
+ | { | ||
+ | if (disposing && (components != null)) | ||
+ | { | ||
+ | components.Dispose(); | ||
+ | } | ||
+ | base.Dispose(disposing); | ||
+ | } | ||
+ | |||
+ | #region Windows Form Designer generated code | ||
+ | |||
+ | /// <summary> | ||
+ | /// Required method for Designer support - do not modify | ||
+ | /// the contents of this method with the code editor. | ||
+ | /// </summary> | ||
+ | private void InitializeComponent() | ||
+ | { | ||
+ | this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); | ||
+ | this.label2 = new System.Windows.Forms.Label(); | ||
+ | this.tbSQL = new System.Windows.Forms.TextBox(); | ||
+ | this.label3 = new System.Windows.Forms.Label(); | ||
+ | this.dgvResult = new System.Windows.Forms.DataGridView(); | ||
+ | this.buttonConnect = new System.Windows.Forms.Button(); | ||
+ | this.buttonExecute = new System.Windows.Forms.Button(); | ||
+ | this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); | ||
+ | this.label1 = new System.Windows.Forms.Label(); | ||
+ | this.tbEnvironment = new System.Windows.Forms.TextBox(); | ||
+ | this.label4 = new System.Windows.Forms.Label(); | ||
+ | this.tbHost = new System.Windows.Forms.TextBox(); | ||
+ | this.label5 = new System.Windows.Forms.Label(); | ||
+ | this.tbPort = new System.Windows.Forms.TextBox(); | ||
+ | this.tableLayoutPanel1.SuspendLayout(); | ||
+ | ((System.ComponentModel.ISupportInitialize)(this.dgvResult)).BeginInit(); | ||
+ | this.tableLayoutPanel2.SuspendLayout(); | ||
+ | this.SuspendLayout(); | ||
+ | // | ||
+ | // tableLayoutPanel1 | ||
+ | // | ||
+ | this.tableLayoutPanel1.ColumnCount = 3; | ||
+ | this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel1.ColumnStyles.Add(new | ||
+ | System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); | ||
+ | this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.label2, 0, 1); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.tbSQL, 0, 2); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.label3, 0, 3); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.dgvResult, 0, 4); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.buttonConnect, 2, 0); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.buttonExecute, 2, 2); | ||
+ | this.tableLayoutPanel1.Controls.Add(this.tableLayoutPanel2, 0, 0); | ||
+ | this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.tableLayoutPanel1.Location = new System.Drawing.Point(0, 0); | ||
+ | this.tableLayoutPanel1.Name = "tableLayoutPanel1"; | ||
+ | this.tableLayoutPanel1.Padding = new System.Windows.Forms.Padding(10); | ||
+ | this.tableLayoutPanel1.RowCount = 5; | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new | ||
+ | System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 40F)); | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new | ||
+ | System.Windows.Forms.RowStyle()); | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new | ||
+ | System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 60F)); | ||
+ | this.tableLayoutPanel1.RowStyles.Add(new | ||
+ | System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 20F)); | ||
+ | this.tableLayoutPanel1.Size = new System.Drawing.Size(630, 424); | ||
+ | this.tableLayoutPanel1.TabIndex = 0; | ||
+ | // | ||
+ | // label2 | ||
+ | // | ||
+ | this.label2.AutoSize = true; | ||
+ | this.label2.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.label2.Location = new System.Drawing.Point(13, 41); | ||
+ | this.label2.Margin = new System.Windows.Forms.Padding(3, 5, 3, 0); | ||
+ | this.label2.Name = "label2"; | ||
+ | this.label2.Size = new System.Drawing.Size(82, 13); | ||
+ | this.label2.TabIndex = 1; | ||
+ | this.label2.Text = "SQL Statement:"; | ||
+ | // | ||
+ | // tbSQL | ||
+ | // | ||
+ | this.tableLayoutPanel1.SetColumnSpan(this.tbSQL, 2); | ||
+ | this.tbSQL.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.tbSQL.Location = new System.Drawing.Point(13, 57); | ||
+ | this.tbSQL.Multiline = true; | ||
+ | this.tbSQL.Name = "tbSQL"; | ||
+ | this.tbSQL.Size = new System.Drawing.Size(518, 130); | ||
+ | this.tbSQL.TabIndex = 2; | ||
+ | // | ||
+ | // label3 | ||
+ | // | ||
+ | this.label3.AutoSize = true; | ||
+ | this.label3.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.label3.Location = new System.Drawing.Point(13, 195); | ||
+ | this.label3.Margin = new System.Windows.Forms.Padding(3, 5, 3, 0); | ||
+ | this.label3.Name = "label3"; | ||
+ | this.label3.Size = new System.Drawing.Size(82, 13); | ||
+ | this.label3.TabIndex = 3; | ||
+ | this.label3.Text = "Result:"; | ||
+ | // | ||
+ | // dgvResult | ||
+ | // | ||
+ | this.dgvResult.AllowUserToAddRows = false; | ||
+ | this.dgvResult.AllowUserToDeleteRows = false; | ||
+ | this.dgvResult.AllowUserToOrderColumns = true; | ||
+ | this.dgvResult.BackgroundColor = System.Drawing.Color.White; | ||
+ | this.dgvResult.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; | ||
+ | this.dgvResult.ColumnHeadersHeightSizeMode = | ||
+ | System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; | ||
+ | this.tableLayoutPanel1.SetColumnSpan(this.dgvResult, 3); | ||
+ | this.dgvResult.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.dgvResult.Location = new System.Drawing.Point(13, 211); | ||
+ | this.dgvResult.MultiSelect = false; | ||
+ | this.dgvResult.Name = "dgvResult"; | ||
+ | this.dgvResult.ReadOnly = true; | ||
+ | this.dgvResult.RowHeadersVisible = false; | ||
+ | this.dgvResult.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; | ||
+ | this.dgvResult.Size = new System.Drawing.Size(604, 200); | ||
+ | this.dgvResult.TabIndex = 4; | ||
+ | // | ||
+ | // buttonConnect | ||
+ | // | ||
+ | this.buttonConnect.Location = new System.Drawing.Point(537, 10); | ||
+ | this.buttonConnect.Margin = new System.Windows.Forms.Padding(3, 0, 3, 3); | ||
+ | this.buttonConnect.Name = "buttonConnect"; | ||
+ | this.buttonConnect.Size = new System.Drawing.Size(75, 23); | ||
+ | this.buttonConnect.TabIndex = 5; | ||
+ | this.buttonConnect.Text = "Connect"; | ||
+ | this.buttonConnect.UseVisualStyleBackColor = true; | ||
+ | this.buttonConnect.Click += new System.EventHandler(this.buttonConnect_Click); | ||
+ | // | ||
+ | // buttonExecute | ||
+ | // | ||
+ | this.buttonExecute.AutoSize = true; | ||
+ | this.buttonExecute.Location = new System.Drawing.Point(537, 57); | ||
+ | this.buttonExecute.Name = "buttonExecute"; | ||
+ | this.buttonExecute.Size = new System.Drawing.Size(80, 23); | ||
+ | this.buttonExecute.TabIndex = 6; | ||
+ | this.buttonExecute.Text = "Execute SQL"; | ||
+ | this.buttonExecute.UseVisualStyleBackColor = true; | ||
+ | this.buttonExecute.Click += new System.EventHandler(this.buttonExecute_Click); | ||
+ | // | ||
+ | // tableLayoutPanel2 | ||
+ | // | ||
+ | this.tableLayoutPanel2.AutoSize = true; | ||
+ | this.tableLayoutPanel2.ColumnCount = 6; | ||
+ | this.tableLayoutPanel1.SetColumnSpan(this.tableLayoutPanel2, 2); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new | ||
+ | System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.label1, 0, 0); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.tbEnvironment, 1, 0); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.label4, 2, 0); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.tbHost, 3, 0); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.label5, 4, 0); | ||
+ | this.tableLayoutPanel2.Controls.Add(this.tbPort, 5, 0); | ||
+ | this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.tableLayoutPanel2.Location = new System.Drawing.Point(10, 10); | ||
+ | this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); | ||
+ | this.tableLayoutPanel2.Name = "tableLayoutPanel2"; | ||
+ | this.tableLayoutPanel2.RowCount = 1; | ||
+ | this.tableLayoutPanel2.RowStyles.Add(new | ||
+ | System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); | ||
+ | this.tableLayoutPanel2.Size = new System.Drawing.Size(524, 26); | ||
+ | this.tableLayoutPanel2.TabIndex = 0; | ||
+ | // | ||
+ | // label1 | ||
+ | // | ||
+ | this.label1.AutoSize = true; | ||
+ | this.label1.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.label1.Location = new System.Drawing.Point(3, 0); | ||
+ | this.label1.Name = "label1"; | ||
+ | this.label1.Size = new System.Drawing.Size(88, 26); | ||
+ | this.label1.TabIndex = 0; | ||
+ | this.label1.Text = "Environment File:"; | ||
+ | this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; | ||
+ | // | ||
+ | // tbEnvironment | ||
+ | // | ||
+ | this.tbEnvironment.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; | ||
+ | this.tbEnvironment.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.FileSystem; | ||
+ | this.tbEnvironment.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.tbEnvironment.Location = new System.Drawing.Point(97, 3); | ||
+ | this.tbEnvironment.Name = "tbEnvironment"; | ||
+ | this.tbEnvironment.Size = new System.Drawing.Size(189, 20); | ||
+ | this.tbEnvironment.TabIndex = 1; | ||
+ | // | ||
+ | // label4 | ||
+ | // | ||
+ | this.label4.AutoSize = true; | ||
+ | this.label4.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.label4.Location = new System.Drawing.Point(292, 0); | ||
+ | this.label4.Name = "label4"; | ||
+ | this.label4.Size = new System.Drawing.Size(32, 26); | ||
+ | this.label4.TabIndex = 2; | ||
+ | this.label4.Text = "Host:"; | ||
+ | this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; | ||
+ | // | ||
+ | // tbHost | ||
+ | // | ||
+ | this.tbHost.Location = new System.Drawing.Point(330, 3); | ||
+ | this.tbHost.Name = "tbHost"; | ||
+ | this.tbHost.Size = new System.Drawing.Size(100, 20); | ||
+ | this.tbHost.TabIndex = 3; | ||
+ | // | ||
+ | // label5 | ||
+ | // | ||
+ | this.label5.AutoSize = true; | ||
+ | this.label5.Dock = System.Windows.Forms.DockStyle.Fill; | ||
+ | this.label5.Location = new System.Drawing.Point(436, 0); | ||
+ | this.label5.Name = "label5"; | ||
+ | this.label5.Size = new System.Drawing.Size(29, 26); | ||
+ | this.label5.TabIndex = 4; | ||
+ | this.label5.Text = "Port:"; | ||
+ | this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; | ||
+ | // | ||
+ | // tbPort | ||
+ | // | ||
+ | this.tbPort.Location = new System.Drawing.Point(471, 3); | ||
+ | this.tbPort.Name = "tbPort"; | ||
+ | this.tbPort.Size = new System.Drawing.Size(50, 20); | ||
+ | this.tbPort.TabIndex = 5; | ||
+ | // | ||
+ | // MainForm | ||
+ | // | ||
+ | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | ||
+ | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | ||
+ | this.ClientSize = new System.Drawing.Size(630, 424); | ||
+ | this.Controls.Add(this.tableLayoutPanel1); | ||
+ | this.Name = "MainForm"; | ||
+ | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; | ||
+ | this.Text = "SQL Window"; | ||
+ | this.FormClosing += new | ||
+ | System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); | ||
+ | this.tableLayoutPanel1.ResumeLayout(false); | ||
+ | this.tableLayoutPanel1.PerformLayout(); | ||
+ | ((System.ComponentModel.ISupportInitialize)(this.dgvResult)).EndInit(); | ||
+ | this.tableLayoutPanel2.ResumeLayout(false); | ||
+ | this.tableLayoutPanel2.PerformLayout(); | ||
+ | this.ResumeLayout(false); | ||
+ | |||
+ | } | ||
+ | |||
+ | #endregion | ||
+ | |||
+ | private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; | ||
+ | private System.Windows.Forms.Label label2; | ||
+ | private System.Windows.Forms.TextBox tbSQL; | ||
+ | private System.Windows.Forms.Label label3; | ||
+ | private System.Windows.Forms.DataGridView dgvResult; | ||
+ | private System.Windows.Forms.Button buttonConnect; | ||
+ | private System.Windows.Forms.Button buttonExecute; | ||
+ | private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; | ||
+ | private System.Windows.Forms.Label label1; | ||
+ | private System.Windows.Forms.TextBox tbEnvironment; | ||
+ | private System.Windows.Forms.Label label4; | ||
+ | private System.Windows.Forms.TextBox tbHost; | ||
+ | private System.Windows.Forms.Label label5; | ||
+ | private System.Windows.Forms.TextBox tbPort; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </code> | ||
===== ===== | ===== ===== | ||
- | **[[dev:odbc:datasources|Prev]]** | + | **[[dev:odbc:sample_c|Prev]]** |
====== Additional Resources ====== | ====== Additional Resources ====== |