Csharp/C Sharp/Database ADO.net/Data Fill ListView

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Fill Data from database table to ListView

using System;
using System.Drawing;
using System.Collections;
using System.ruponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
public class Form1 : System.Windows.Forms.Form {
   private System.Windows.Forms.Label label1;
   private System.Windows.Forms.Button cmdExecute;
   private System.Windows.Forms.TextBox txtSql;
   private System.Windows.Forms.ListView lvwResult;
   private System.ruponentModel.Container components = null;
   public Form1() {
      InitializeComponent();
   }
   private void InitializeComponent() {
      this.label1 = new System.Windows.Forms.Label();
      this.cmdExecute = new System.Windows.Forms.Button();
      this.txtSql = new System.Windows.Forms.TextBox();
      this.lvwResult = new System.Windows.Forms.ListView();
      this.SuspendLayout();
      this.label1.Location = new System.Drawing.Point(0, 0);
      this.label1.Name = "label1";
      this.label1.Size = new System.Drawing.Size(296, 16);
      this.label1.TabIndex = 0;
      this.label1.Text = "Enter a SQL query or statement and click Execute.";
      this.cmdExecute.Location = new System.Drawing.Point(227, 224);
      this.cmdExecute.Name = "cmdExecute";
      this.cmdExecute.TabIndex = 1;
      this.cmdExecute.Text = "Execute";
      this.cmdExecute.Click += new System.EventHandler(this.cmdExecute_Click);
      this.txtSql.Location = new System.Drawing.Point(0, 16);
      this.txtSql.Multiline = true;
      this.txtSql.Name = "txtSql";
      this.txtSql.Size = new System.Drawing.Size(528, 200);
      this.txtSql.TabIndex = 2;
      this.txtSql.Text = "";
      this.lvwResult.GridLines = true;
      this.lvwResult.Location = new System.Drawing.Point(0, 256);
      this.lvwResult.Name = "lvwResult";
      this.lvwResult.Size = new System.Drawing.Size(528, 200);
      this.lvwResult.TabIndex = 3;
      this.lvwResult.View = System.Windows.Forms.View.Details;
      this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
      this.ClientSize = new System.Drawing.Size(528, 452);
      this.Controls.Add(this.lvwResult);
      this.Controls.Add(this.txtSql);
      this.Controls.Add(this.cmdExecute);
      this.Controls.Add(this.label1);
      this.Name = "Form1";
      this.Text = "Query Processor";
      this.ResumeLayout(false);
   }
   static void Main() {
      Application.Run(new Form1());
   }
   private void cmdExecute_Click(object sender, System.EventArgs e) {
     SqlConnection conn = new SqlConnection("server=(local)\\SQLEXPRESS;database=MyDatabase;Integrated Security=SSPI");
     try {
       lvwResult.Columns.Clear() ;
       lvwResult.Items.Clear();
       conn.Open();
       txtSql.Text ="select * from Employee";
       SqlCommand cmd = conn.CreateCommand();
       cmd.rumandText = txtSql.Text;
       SqlDataReader dr = cmd.ExecuteReader();
       for (int i = 0; i< dr.FieldCount; i++) {
         ColumnHeader ch = new ColumnHeader();
         ch.Text=dr.GetName(i);
         lvwResult.Columns.Add(ch);
       }
       ListViewItem itmX; 
       while (dr.Read()) {
         itmX=new ListViewItem(); 
         itmX.Text= dr.GetValue(0).ToString();
         for (int i=1 ; i< dr.FieldCount; i++) {
            itmX.SubItems.Add(dr.GetValue(i).ToString());
         }
         lvwResult.Items.Add(itmX);
       }
       dr.Close();
    } catch ( System.Data.SqlClient.SqlException  ex) {
       Console.WriteLine("There was an error in executing the SQL." +
               "\nError Message:" + ex.Message, "SQL");
    } finally {
       conn.Close();
    }
  }
}