Hello,

My application has a simple textbox for user input, a database connection, a button and a label.

I will search for the user input in my database and update the label when the user clicks the button.

This works fine on the first button click but ceases to function on subsequent clicks.
Any idea why?

Regards,

MC

Not without seeing some code...

Not without seeing some code...

Please check out the attached image to get an overview of what I have. Imagine that a user will enter her/his name in the text box, I will check if the name exists in the database and display it on the label...then the user will enter another name etc...
I would love to learn best practices as well...so please let me know if some of my code should belong in a new code file...in a separate class...maybe I can make use of fewer try-catches etc.

Thanks a bunch!

public partial class Form1 : Form
    {
        SqlConnection con;
        DataSet ds1;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            con = new SqlConnection(...MyConnectionString...);
            ds1 = new DataSet();
        }

        private void label1_Click(object sender, EventArgs e)
        {
            //Dont really need this and will delete it later...Please ignore
        }

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                con.Open();
            }
            catch(Exception ex)
            {
                Console.WriteLine("Con Open(): \n {0}", ex);
                return;
            }

            string sql = select a,b,c from table where x=y;

            SqlDataAdapter da = new SqlDataAdapter(sql, con);

            try
            {
                da.Fill(ds1, "MyDataSetName");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Da Fill(): \n {0}", ex);
                return;
            }
            GetRecords();

            con.Close();  
        }

        private void GetRecords()
        {
            DataRow dRow = ds1.Tables["MyDataSetName"].Rows[0];
            label2.Refresh();
            label2.Text = dRow.ItemArray.GetValue(0).ToString() + " " + dRow.ItemArray.GetValue(1).ToString() + " " + dRow.ItemArray.GetValue(2).ToString();
        }
    }

This can be solved by calling Clear() on dataset before filling it with new values.

[B]ds1.Clear();[/B]
try
{
  da.Fill(ds1, "MyDataSetName");
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.