PDA

View Full Version : یه برنامه کوچیک نوشتم هرموقع اجرا میکنم فقط یه کار انجام میده(حذف.ثبت.جستجو)



alone1happy
سه شنبه 03 دی 1392, 15:00 عصر
ببخشید دوستان من یه برنامه نوشتم اما هرموقع اجرا میکنم فقط یه کار انجام میده یعنی یا یه بار یا حذف میکنه یا درج میکنه و یا جستجو میکنه مشکلش چیه؟ هر دستورم تو یه دکمه نوشتم. فقط sqlconnection و sqlcommand رو تو کلاس فرم نوشتم

امیر مهرشاد
سه شنبه 03 دی 1392, 15:18 عصر
کدی که میگی مشکل داره لااقل بزار ببینیم اینجوری کسی جوابتونو نمیده یا دقیق متوجه مشکلتون نمیشه :متفکر:

star_alone
سه شنبه 03 دی 1392, 17:13 عصر
عجب !!!!!!!!!!!!!!!!!! ندیدم تا بحال

momimomi
سه شنبه 03 دی 1392, 22:26 عصر
دوست عزیز لطفا کدشو قرار بده.
بدون کد آیا کسی می تونه جواب بده؟!

FastCode
چهارشنبه 04 دی 1392, 01:35 صبح
آره.من میتونم.حداقل سه حالت وجود داره که باعث میشه این اتفاق بیافته.
الان فقط یکیش رو میگم چون خوابم میاد.اگر کد گذاشته بودی احتمال درست بودن جواب خیلی بیشتر بود:
وقتی دستورت رو اجرا میکنی DataReader رو نمیبندی و نمیتونی یکی دیگه روی همون کانکشن باز کنی.

alone1happy
چهارشنبه 04 دی 1392, 09:37 صبح
دوست عزیز لطفا کدشو قرار بده.
بدون کد آیا کسی می تونه جواب بده؟!
public partial class Form1 : Form
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=example;Integrated Security=True");
SqlCommand cmd = new SqlCommand();
private void button1_Click(object sender, EventArgs e)
{
try
{
cmd.CommandText = "INSERT INTO st (Nam,Famil)" +
"VALUES (@n,@f)";
cmd.Connection = con;
cmd.Parameters.AddWithValue("@n", textBox1.Text);
cmd.Parameters.AddWithValue("@f", textBox2.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("ثبت شد");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM st", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch
{
MessageBox.Show("ثبت نشد");
}

}

private void button2_Click(object sender, EventArgs e)
{
try
{
int rows1 = 0;
con.Open();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = "DELETE FROM st WHERE Nam=@n";
cmd.Parameters.AddWithValue("@n", textBox1.Text);
rows1 = cmd.ExecuteNonQuery();
con.Close();
MessageBox.Show("حذف شد");
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM st", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
}
catch
{
MessageBox.Show("حذف نشد");
}

}

momimomi
چهارشنبه 04 دی 1392, 14:12 عصر
(cmd.Parameters.AddWithValue("@n", textBox1.Text

این کد رو برا دستور delete نوشتی در صورتی که داری از متد addwithvalue استفاده می کنی!
کدهای زیر رو برا delete استفاده کنید

OleDbConnection con = new OleDbConnection(@"provider = microsoft.jet.oledb.4.0;" +
@"data source =TS.mdb");
string q = "DELETE FROM s WHERE nam = '" + textbox1.text + "'";
OleDbCommand cmd = new OleDbCommand(q, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();

من از اکسس استفاده کردم شما که از sql استفاده می کنی کانکشن استرینگ و oledb را تغییر بده