ehsan#baharangiz
شنبه 26 اردیبهشت 1394, 13:26 عصر
سلام من یه کد نوشتم که کار ذخیره اطلاعاتو انجام میده ولی وقتی مقدار کلید جدولو تکراری وارد میکنم میره و catch رو اجرا میکنه تا اینجا مشکلی نداره
مشکل اینجاست وقتی پیغام قسمت catch اجرا میشه بعد اون دیگه هرچقدر مقدار درستم وارد میکنیم باز همون پیغامو نشون میده باید حتما یکبار اون صفحه رو ببندی دوباره باز کنی تا درست بشه.ممنون میشم کمک کنین
اینم کد:
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Equals("") || textBox2.Text.Equals("") || textBox3.Text.Equals("") || textBox4.Text.Equals(""))
{
MessageBox.Show(this, "اطلاعات ناقص هستند", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
return;
}
try
{
con.Open();
SqlCommand cmd = new SqlCommand("insert into sabtj (numj,datej,numsh,datesh,numdabir,datedabir,dateba rasi,vazj,typej,city) Values (@numj,@datej,@numsh,@datesh,@numdabir,@datedabir, @datebarasi,@vazj,@typej,@city)", con);
cmd.Parameters.AddWithValue("numj", textBox1.Text);
cmd.Parameters.AddWithValue("datej", textBox2.Text);
cmd.Parameters.AddWithValue("numsh", textBox3.Text);
cmd.Parameters.AddWithValue("datesh", textBox4.Text);
cmd.Parameters.AddWithValue("numdabir", textBox5.Text);
cmd.Parameters.AddWithValue("datedabir", textBox6.Text);
cmd.Parameters.AddWithValue("datebarasi", textBox7.Text);
cmd.Parameters.AddWithValue("vazj", comboBox1.Text);
cmd.Parameters.AddWithValue("typej", comboBox2.Text);
cmd.Parameters.AddWithValue("city", comboBox3.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(this, "اطلاعات با موفقیت به ثبت رسید", "اتمام عملیات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Bind();
Clear();
}
catch
{
MessageBox.Show(this, "ghader nist", "اتمام عملیات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
}
private void Clear()
{
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
textBox3.Text = string.Empty;
textBox4.Text = string.Empty;
textBox5.Text = string.Empty;
textBox6.Text = string.Empty;
textBox7.Text = string.Empty;
comboBox1.Text = string.Empty;
comboBox2.Text = string.Empty;
comboBox3.Text = string.Empty;
}
private void Bind()
{
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from sabtj", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
}
مشکل اینجاست وقتی پیغام قسمت catch اجرا میشه بعد اون دیگه هرچقدر مقدار درستم وارد میکنیم باز همون پیغامو نشون میده باید حتما یکبار اون صفحه رو ببندی دوباره باز کنی تا درست بشه.ممنون میشم کمک کنین
اینم کد:
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text.Equals("") || textBox2.Text.Equals("") || textBox3.Text.Equals("") || textBox4.Text.Equals(""))
{
MessageBox.Show(this, "اطلاعات ناقص هستند", "هشدار", MessageBoxButtons.OK, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
return;
}
try
{
con.Open();
SqlCommand cmd = new SqlCommand("insert into sabtj (numj,datej,numsh,datesh,numdabir,datedabir,dateba rasi,vazj,typej,city) Values (@numj,@datej,@numsh,@datesh,@numdabir,@datedabir, @datebarasi,@vazj,@typej,@city)", con);
cmd.Parameters.AddWithValue("numj", textBox1.Text);
cmd.Parameters.AddWithValue("datej", textBox2.Text);
cmd.Parameters.AddWithValue("numsh", textBox3.Text);
cmd.Parameters.AddWithValue("datesh", textBox4.Text);
cmd.Parameters.AddWithValue("numdabir", textBox5.Text);
cmd.Parameters.AddWithValue("datedabir", textBox6.Text);
cmd.Parameters.AddWithValue("datebarasi", textBox7.Text);
cmd.Parameters.AddWithValue("vazj", comboBox1.Text);
cmd.Parameters.AddWithValue("typej", comboBox2.Text);
cmd.Parameters.AddWithValue("city", comboBox3.Text);
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show(this, "اطلاعات با موفقیت به ثبت رسید", "اتمام عملیات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Bind();
Clear();
}
catch
{
MessageBox.Show(this, "ghader nist", "اتمام عملیات", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
}
private void Clear()
{
textBox1.Text = string.Empty;
textBox2.Text = string.Empty;
textBox3.Text = string.Empty;
textBox4.Text = string.Empty;
textBox5.Text = string.Empty;
textBox6.Text = string.Empty;
textBox7.Text = string.Empty;
comboBox1.Text = string.Empty;
comboBox2.Text = string.Empty;
comboBox3.Text = string.Empty;
}
private void Bind()
{
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select * from sabtj", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
con.Close();
}