Display all the same entries

Sep 8 2005 7:09 AM

Hello,

I was wondering, if anybody could kindly help me.

Basically, I am very new to 'C#'. The problem I have is that, I have a database which details all the tags on the process plants, there could at anytime be same tags, i.e. duplicates in this database.  I wrote the following code to look for a tag which the user wants. But I had to put a "break statement" when I have found the very first one. When I take this "break statement", then the software crashes.

Could you kindly tell me what I can do so that the occurances of a
particular tag will be displayed depending how many of them are within the
database.

Many thanks 
Behzad 



using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.OleDb;

namespace SearchTag
{
 /// <summary>
 /// Summary description for Form1.
 /// </summary>
 public class Form1 : System.Windows.Forms.Form
 {
  DataSet varsData = new DataSet();

  bool firstTime = true;
  private System.Windows.Forms.Label tagLabel;
  private System.Windows.Forms.TextBox textBoxTag;
  private System.Windows.Forms.DataGrid dataGrid1;
  string tempString;
  private System.Windows.Forms.MenuItem menuItem1;
  private System.Windows.Forms.MenuItem menuItem2;
  private System.Windows.Forms.MenuItem menuItem3;
  private System.Windows.Forms.MenuItem menuItem4;
  private System.Windows.Forms.MenuItem menuItem5;
  private System.Windows.Forms.MainMenu mainMenu1;
  private System.Windows.Forms.GroupBox groupBox1;
  private System.Windows.Forms.GroupBox groupBox2;
  private System.Windows.Forms.Label label1;
  private System.Windows.Forms.TextBox textBox1;
  private System.Windows.Forms.TextBox textBox2;
  private System.Windows.Forms.Label label2;
  private System.Windows.Forms.Label label3;
  private System.Windows.Forms.TextBox textBox3;
  /// <summary>
  /// Required designer variable.
  /// </summary>
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Required for Windows Form Designer support
   //
   InitializeComponent();

   //
   // TODO: Add any constructor code after InitializeComponent call
   //
  }

  /// <summary>
  /// Clean up any resources being used.
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (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.tagLabel = new System.Windows.Forms.Label();
   this.textBoxTag = new System.Windows.Forms.TextBox();
   this.dataGrid1 = new System.Windows.Forms.DataGrid();
   this.menuItem1 = new System.Windows.Forms.MenuItem();
   this.menuItem2 = new System.Windows.Forms.MenuItem();
   this.menuItem3 = new System.Windows.Forms.MenuItem();
   this.menuItem4 = new System.Windows.Forms.MenuItem();
   this.menuItem5 = new System.Windows.Forms.MenuItem();
   this.mainMenu1 = new System.Windows.Forms.MainMenu();
   this.groupBox1 = new System.Windows.Forms.GroupBox();
   this.groupBox2 = new System.Windows.Forms.GroupBox();
   this.textBox3 = new System.Windows.Forms.TextBox();
   this.label3 = new System.Windows.Forms.Label();
   this.label2 = new System.Windows.Forms.Label();
   this.textBox2 = new System.Windows.Forms.TextBox();
   this.textBox1 = new System.Windows.Forms.TextBox();
   this.label1 = new System.Windows.Forms.Label();
   ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
   this.groupBox1.SuspendLayout();
   this.groupBox2.SuspendLayout();
   this.SuspendLayout();
   //
   // tagLabel
   //
   this.tagLabel.FlatStyle = System.Windows.Forms.FlatStyle.Popup;
   this.tagLabel.Location = new System.Drawing.Point(18, 39);
   this.tagLabel.Name = "tagLabel";
   this.tagLabel.Size = new System.Drawing.Size(112, 23);
   this.tagLabel.TabIndex = 0;
   this.tagLabel.Text = "Please Enter Tag";
   //
   // textBoxTag
   //
   this.textBoxTag.BackColor = System.Drawing.SystemColors.Window;
   this.textBoxTag.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.textBoxTag.ForeColor = System.Drawing.SystemColors.WindowText;
   this.textBoxTag.Location = new System.Drawing.Point(135, 36);
   this.textBoxTag.MaxLength = 13;
   this.textBoxTag.Name = "textBoxTag";
   this.textBoxTag.Size = new System.Drawing.Size(200, 27);
   this.textBoxTag.TabIndex = 1;
   this.textBoxTag.Text = "";
   this.textBoxTag.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
   this.textBoxTag.TextChanged += new System.EventHandler(this.textBoxTag_TextChanged);
   //
   // dataGrid1
   //
   this.dataGrid1.CaptionFont = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.dataGrid1.DataMember = "";
   this.dataGrid1.Font = new System.Drawing.Font("Times New Roman", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
   this.dataGrid1.Location = new System.Drawing.Point(6, 222);
   this.dataGrid1.Name = "dataGrid1";
   this.dataGrid1.Size = new System.Drawing.Size(807, 129);
   this.dataGrid1.TabIndex = 4;
   //
   // menuItem1
   //
   this.menuItem1.Index = 0;
   this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                       this.menuItem2,
                       this.menuItem3});
   this.menuItem1.Text = "&File";
   //
   // menuItem2
   //
   this.menuItem2.Index = 0;
   this.menuItem2.Text = "&Open";
   this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
   //
   // menuItem3
   //
   this.menuItem3.Index = 1;
   this.menuItem3.Text = "&Exit";
   this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
   //
   // menuItem4
   //
   this.menuItem4.Index = 1;
   this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                       this.menuItem5});
   this.menuItem4.Text = "&Search";
   //
   // menuItem5
   //
   this.menuItem5.Index = 0;
   this.menuItem5.Text = "&TagSearch";
   this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click_1);
   //
   // mainMenu1
   //
   this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
                       this.menuItem1,
                       this.menuItem4});
   //
   // groupBox1
   //
   this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] {
                     this.tagLabel,
                     this.textBoxTag});
   this.groupBox1.Location = new System.Drawing.Point(15, 12);
   this.groupBox1.Name = "groupBox1";
   this.groupBox1.Size = new System.Drawing.Size(342, 93);
   this.groupBox1.TabIndex = 5;
   this.groupBox1.TabStop = false;
   this.groupBox1.Text = "TagEntry";
   //
   // groupBox2
   //
   this.groupBox2.Controls.AddRange(new System.Windows.Forms.Control[] {
                     this.textBox3,
                     this.label3,
                     this.label2,
                     this.textBox2,
                     this.textBox1,
                     this.label1});
   this.groupBox2.Location = new System.Drawing.Point(384, 9);
   this.groupBox2.Name = "groupBox2";
   this.groupBox2.Size = new System.Drawing.Size(405, 186);
   this.groupBox2.TabIndex = 6;
   this.groupBox2.TabStop = false;
   this.groupBox2.Text = "Flow Details";
   //
   // textBox3
   //
   this.textBox3.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.textBox3.Location = new System.Drawing.Point(141, 117);
   this.textBox3.Name = "textBox3";
   this.textBox3.Size = new System.Drawing.Size(192, 27);
   this.textBox3.TabIndex = 5;
   this.textBox3.Text = "";
   //
   // label3
   //
   this.label3.Location = new System.Drawing.Point(3, 114);
   this.label3.Name = "label3";
   this.label3.Size = new System.Drawing.Size(129, 24);
   this.label3.TabIndex = 4;
   this.label3.Text = "Service";
   //
   // label2
   //
   this.label2.Location = new System.Drawing.Point(6, 72);
   this.label2.Name = "label2";
   this.label2.Size = new System.Drawing.Size(129, 24);
   this.label2.TabIndex = 3;
   this.label2.Text = "Fluid Type";
   //
   // textBox2
   //
   this.textBox2.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.textBox2.Location = new System.Drawing.Point(141, 72);
   this.textBox2.Name = "textBox2";
   this.textBox2.Size = new System.Drawing.Size(192, 27);
   this.textBox2.TabIndex = 2;
   this.textBox2.Text = "";
   //
   // textBox1
   //
   this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
   this.textBox1.Location = new System.Drawing.Point(141, 30);
   this.textBox1.Name = "textBox1";
   this.textBox1.Size = new System.Drawing.Size(192, 27);
   this.textBox1.TabIndex = 1;
   this.textBox1.Text = "15\'C @ 1.103 bara";
   this.textBox1.TextChanged += new System.EventHandler(this.textBox1_TextChanged);
   //
   // label1
   //
   this.label1.Location = new System.Drawing.Point(6, 30);
   this.label1.Name = "label1";
   this.label1.Size = new System.Drawing.Size(129, 24);
   this.label1.TabIndex = 0;
   this.label1.Text = "Standard Condition";
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 15);
   this.ClientSize = new System.Drawing.Size(807, 360);
   this.Controls.AddRange(new System.Windows.Forms.Control[] {
                    this.groupBox2,
                    this.groupBox1,
                    this.dataGrid1});
   this.ForeColor = System.Drawing.SystemColors.Desktop;
   this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
   this.MaximizeBox = false;
   this.Menu = this.mainMenu1;
   this.MinimizeBox = false;
   this.Name = "Form1";
   this.Text = "SerachTag";
   this.Load += new System.EventHandler(this.Form1_Load);
   ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
   this.groupBox1.ResumeLayout(false);
   this.groupBox2.ResumeLayout(false);
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }

  private void Form1_Load(object sender, System.EventArgs e)
  {
  }

  private void endButton_Click(object sender, System.EventArgs e)
  {
   
  }
  private void ClearTextBox()
  {
   this.textBoxTag.Clear();
   this.textBoxTag.Focus();
  }
  private void WriteToDataGrid(string tagToUse)
  {
   string common = "";
   string message = "The tag does not exist";
   string caption = "Tag Not Found";
   MessageBoxButtons button= MessageBoxButtons.RetryCancel;
   DialogResult result;
   bool found = false;
   int counter = 0;
  
   DataTable dt = new DataTable();

   dt.Columns.Add("FC");
   dt.Columns.Add("StreamId");
   dt.Columns.Add("TemTag");
   dt.Columns.Add("Temp0mA");
   dt.Columns.Add("Temp20mA");
   dt.Columns.Add("TempLoAla");
   dt.Columns.Add("TempHiAla");
   dt.Columns.Add("TempKP");
     
   //Pressure
   dt.Columns.Add("PresTag");
   dt.Columns.Add("Pres0mA");
   dt.Columns.Add("Pres20mA");
   dt.Columns.Add("PresLoAla");
   dt.Columns.Add("PresHiAla");
   dt.Columns.Add("PresKP");

   //Flow
   dt.Columns.Add("FlowTag");
   dt.Columns.Add("Flow0mA");
   dt.Columns.Add("Flow20mA");
   dt.Columns.Add("FlowLoAla");
   dt.Columns.Add("FlowHiAla");
   dt.Columns.Add("FlowKP");

   //Density
   dt.Columns.Add("DensTag");
   dt.Columns.Add("Dens0mA");
   dt.Columns.Add("Dens20mA");
   dt.Columns.Add("DensLoAl");
   dt.Columns.Add("DensHiAl");
   dt.Columns.Add("DensKP");

   //Type
   dt.Columns.Add("FluidType");
   dt.Columns.Add("Service");

   // Repeat for each table in the DataSet collection. 
   foreach(DataTable table in varsData.Tables)
   {
    foreach(DataRow row in table.Rows)
    { 

     // Put the TempTag in a common string for string comparison
     common = row[tagToUse].ToString();
     if (string.Compare(common,0,textBoxTag.Text,0,textBoxTag.Text.Length)==0)
     {
      found = true;     
      dt.Rows.Add(new object[] {row["FC"].ToString(),row["StreamId"].ToString(),
             row["TempTag"].ToString(),row["Temp0mA"].ToString(),
             row["Temp20mA"].ToString(),row["TempLoAL"].ToString(),
             row["TempHiAL"].ToString(),row["TempKeyPad"].ToString(),
             row["PressTag"].ToString(),row["Press0mA"].ToString(),
             row["Press20mA"].ToString(),row["PressLoAL"].ToString(),
             row["PressHiAL"].ToString(),row["PressKeyPad"].ToString(),
             row["FlowTag"].ToString(),row["Flow0mA"].ToString(),
             row["Flow20mA"].ToString(),row["FlowLoAL"].ToString(),
             row["FlowHiAL"].ToString(),row["FlowKeyPad"].ToString(),
             row["DensTag"].ToString(), row["Dens0mA"].ToString(),
             row["Dens20mA"].ToString(), row["DensLoAl"].ToString(),
             row["DensHiAl"].ToString(), row["DensKeyPad"].ToString(),
                                  row["FluidType"].ToString(),row["Service"].ToString()});

      textBox2.Text = row["FluidType"].ToString();
      textBox3.Text = row["Service"].ToString();
      this.dataGrid1.DataSource = dt;
      break;
     } 
    }
   }
   if (found == false)
   {
    result = MessageBox.Show(this, message, caption,button, MessageBoxIcon.Question,
     MessageBoxDefaultButton.Button1,
     MessageBoxOptions.RightAlign);
    if (result == DialogResult.Cancel)
     return;
    else
    {
     ClearTextBox();
     dt.Rows.Clear();
     this.dataGrid1.DataSource = dt;
    }
   }
  }

  private void button1_Click(object sender, System.EventArgs e)
  {
   
  }

  private void textBoxTag_TextChanged(object sender, System.EventArgs e)
  {
  }

  private void menuItem3_Click(object sender, System.EventArgs e)
  {
   Application.Exit();
  }

  private void menuItem2_Click(object sender, System.EventArgs e)
  {
   
   
   OpenFileDialog fdlg = new OpenFileDialog();
   fdlg.Title = "Open File Dialog" ;
   fdlg.InitialDirectory = @"c:\OMNIAZER\PROJECTS" ;
   fdlg.Filter = "All files (*.*)|*.*|Access Database(*.mdb) files (*.mdb)|*.mdb" ;
   fdlg.FilterIndex = 2 ;
   fdlg.RestoreDirectory = true ;
   if(fdlg.ShowDialog() == DialogResult.OK)
    tempString = fdlg.FileName;
  }

  private void menuItem5_Click(object sender, System.EventArgs e)
  {
   
  }

  private void menuItem5_Click_1(object sender, System.EventArgs e)
  {

   string connectionString;
   string whichOne = "TIT", whichVar, textEntry, tagToUse = "";
   string [] tags = new String[]{"TIT", "PIT","FIT", "DT "};
   int i;
   bool found = false;

   if (tempString != null)
   {
    connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+tempString;

    OleDbConnection myConnection = new OleDbConnection(connectionString);
    myConnection.Open();
    string query = "select * from Vars";
    OleDbDataAdapter myAdapter = new OleDbDataAdapter(query, myConnection);
    myAdapter.Fill(varsData);
   
    textEntry = textBoxTag.Text;
    if (textEntry.Length<12)
    {
     MessageBox.Show("The entry is not a valid, please re-enter");
     ClearTextBox();
     return;
    }
    whichVar = textBoxTag.Text.Substring(3,3);
    for (i =0; i < tags.Length; i++)
    {
     if (string.Compare(whichVar,0,tags[i],0,3) ==0)
     {
      found = true;
      whichOne = tags[i];
     }
    }
    if (found != true)
    {
     MessageBox.Show("Please enter a valid tag, The valid tag should have 'TIT' OR 'PIT' OR 'FIT'");
     ClearTextBox();
     return;
    }
    else
    {
     if (whichOne[0] == 'T')
      tagToUse = "TempTag";
     else if(whichOne[0] == 'P')
      tagToUse = "PressTag";
     else if (whichOne[0] == 'D')
      tagToUse = "DensTag";
     else
      tagToUse = "FlowTag";
    }
    WriteToDataGrid(tagToUse);
   }
   else
   {
    MessageBox.Show(this, "You Must Open *.mdb file first", "NoFileOpenYet",MessageBoxButtons.OK,
                MessageBoxIcon.Exclamation,MessageBoxDefaultButton.Button1,
                MessageBoxOptions.RightAlign);
   }
  }

  private void textBox1_TextChanged(object sender, System.EventArgs e)
  {
  
  }
 }
}