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.
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.
Code:
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();
}
}
Have you used the debugger at all? I am betting that the second invocation is throwing an exception and, since you're essentially doing nothing about it and just merrily chuiging along, you don't even notice.
Using Console.WriteLine() in a WinForms app is pretty useless unless you really just want to log to the output window under the IDE.
If you liked my post go ahead and give me an upvote so that my epee.... ahem, reputation will grow.
I looked at the debugger briefly and did not see any exceptions being thrown.
I thought it might have something to do with repaint labels or "Unfill" the data adapter that I am "Fill"ing...
I will try to find out whats wrong now that I know my approach is indeed right.
* The Best Reasons to Target Windows 8
Learn some of the best reasons why you should seriously consider bringing your Android mobile development expertise to bear on the Windows 8 platform.