PDA

View Full Version : سوال: اجرا نشدن دستورات ویرایش ...



ghasem110deh
یک شنبه 26 بهمن 1393, 20:27 عصر
سلام به همه ...
دوستان این اول تا آخر کد ویرایشه ... عین همین رو تو فرمهای دیگه نوشتم جواب داده !
نمیدونم چشه ؟
نه خطا میده و نه چیزیه دیگه !
فقط فرم بسته میشه (در صورتی که الان this.Clise غیرفعال کردم)

private void stiButton1_Click(object sender, EventArgs e)
{
// try
// {
if (string.IsNullOrWhiteSpace(textBox1.Text))
errorProvider1.SetError(textBox1, "شماره بارگذاری نشده است");
if (string.IsNullOrWhiteSpace(textBox2.Text))
errorProvider1.SetError(textBox2, "لطفا شناسه را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox3.Text))
errorProvider1.SetError(textBox3, "لطفا نام انبار را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox4.Text))
errorProvider1.SetError(textBox4, "لطفا نوع کالا را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox5.Text))
errorProvider1.SetError(textBox5, "لطفا نام انباردار را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox6.Text))
errorProvider1.SetError(textBox6, "لطفا نشانی را وارد کیند");
else
{
// try
// {
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True");
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Update TAnbar Set Id = @i, Cod = @c, Anbar = @a, Kalatype = @k, Anbardar = @an, Adr = @ad, Toz = @t Where Id = @i";
com.Parameters.AddWithValue("@i", textBox1.Text);
com.Parameters.AddWithValue("@c", textBox2.Text);
com.Parameters.AddWithValue("@a", textBox3.Text);
com.Parameters.AddWithValue("@k", textBox4.Text);
com.Parameters.AddWithValue("@an", textBox5.Text);
com.Parameters.AddWithValue("@ad", textBox6.Text);
com.Parameters.AddWithValue("@t", textBox7.Text);
// try
// {
con.Open();
com.ExecuteNonQuery();
//int result =
//if (result > 0)
// {
MessageBox.Show("مشخصات انبار (" + textBox3.Text + ") ویرایش شد", "ویرایش", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
Anbarkala anb = (Anbarkala)Application.OpenForms["Anbarkala"]; /////////////////
anb.DGV();
anb.dataGridView1.Update(); // رفرش دیتاگریدویو فورم اصلی بعد از ویرایش
anb.dataGridView1.Refresh();
// this.Close(); /////////////////
// }
// else
// MessageBox.Show("عملیات انجام نشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
// }
// catch
// {
// }
// finally
// {
con.Close();
con.Dispose();
// }
// }
// catch
// {
// }
// }
}
// catch
// {
// }
}
}


البته اگه فقط دستورات مربوط به errorPrvider باشه اجرا میشن !

mrprestige
یک شنبه 26 بهمن 1393, 20:46 عصر
سلام دوست من ، اولا که شما چرا بجای استفاده از این همه if از Switch استفاده کن دوست عزیز تا انقد کدهات شلوغ پلوغ نشه مرتب نوشتن هم توی برنامه نویسی شرط تا روی کدهاتون تمرکز داشته باشید دوست عزیز مطلب بعد اینکه اون دوتا خط datagridview.update و datagridview.Refresh رو پاک کن بعد از ()executenonquery این خط کد ها بنویس



dataAdapter da=new dataAdapter();
da.selectcommand=com;
dataTable dt=new dataTable();
da.fill(dt);
dataGridview1.datasource=dt;


و بعدش منظور از این خط کدی که نوشتی چیه؟:متفکر:

Anbarkala anb = (Anbarkala)Application.OpenForms["Anbarkala"];

ghasem110deh
یک شنبه 26 بهمن 1393, 21:02 عصر
و بعدش منظور از این خط کدی که نوشتی چیه؟:متفکر:

Anbarkala anb = (Anbarkala)Application.OpenForms["Anbarkala"];


سلام
با این دستور میتونی از متدها و ... که تو یه فرم دیگه ایجاد کردی استفاده کنی ؟
آپدیت تو یه فرم دیگه انجام میشه ، با این کد و کدهای مربوط به دیتاگریدویو بعد از ویرایش دیتاگریدویو فورم قبلی (فورم ثبت) بروزرسانی میشه !
--------------------
به foreach تسلط کافی رو ندارم ...
--------------------
الان مشکل اصلی اجرا نشدن دستور ویرایشه ...
و این که چرا هیچ خطایی نمیده ...
و چرا فورم بسته میشه !؟

mrprestige
یک شنبه 26 بهمن 1393, 21:29 عصر
آره اگه میخوای توی کل برنامت استفادش کنی بریزشون تویه کلاس و هرجا که لازمشون داشتی فقط کلاس رو صدا بزن ، الان شما اون دستوراتی رو که گفتم رو انجام دادی؟ ببین الان شما سر راهه دستورات آپدیت Break Point بزار ببین اصلا دستوراتت اجرا میشن؟؟ خط بخط دستورات رو دنبال کن . اون کدهایی رو که برات نوشتم هم ببین اگه لازمه توی کلاس تعریف کن که توی هر جفت فرم ها ازش استفاده کنی اون دستورات if هم فعلا کامنت کن ببین عمل آپدیت انجام میشه !!

aslan
یک شنبه 26 بهمن 1393, 21:59 عصر
سلام
من فکر کنم اگر breakpoint استفاده کنید ( رو سطر 21 )مشکلتون براحتی پیدا میشه
اگر حدسم درست باشه مشکل از else به بعد هستش ................ چراشو خودتون بررسی کنید ...... سعی کنید و ............ پیداکنید
موفق باشید

ghasem110deh
یک شنبه 26 بهمن 1393, 22:26 عصر
این دستورای توی یه فرم دیگه است که بدون مشکل اجرا میشه !

private void stiButton1_Click(object sender, EventArgs e) {
try
{
if (string.IsNullOrWhiteSpace(textBox1.Text))
errorProvider1.SetError(textBox1, "شماره بارگذاری نشده است");
if (string.IsNullOrWhiteSpace(textBox2.Text))
errorProvider1.SetError(textBox2, "لطفا نام واحد را وارد کیند");
else
{
try
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True");
SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Update TVahed Set Id = @i, Vahed = @v Where Id = @i";
com.Parameters.AddWithValue("@i", textBox1.Text);
com.Parameters.AddWithValue("@v", textBox2.Text);
try
{
con.Open();
int result = com.ExecuteNonQuery();
if (result > 0)
{
MessageBox.Show("واحد (" + textBox2.Text + ") ویرایش شد", "ویرایش", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
Vazn vz = (Vazn)Application.OpenForms["Vazn"];
vz.DGV();
vz.dataGridView1.Update();
vz.dataGridView1.Refresh();
this.Close();
}
else
MessageBox.Show("عملیات انجام نشد", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
catch
{
}
finally
{
con.Close();
con.Dispose();
}
}
catch
{
}
}
}
catch
{
}
}
}

الان فقط اینا هستن ، ولی فقط فورم بسته میشه !!!

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True"); SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Update TAnbar Set Id = @i, Cod = @c, Anbar = @a, Kalatype = @k, Anbardar = @an, Adr = @ad, Toz = @t Where Id = @i";
com.Parameters.AddWithValue("@i", textBox1.Text);
com.Parameters.AddWithValue("@c", textBox2.Text);
com.Parameters.AddWithValue("@a", textBox3.Text);
com.Parameters.AddWithValue("@k", textBox4.Text);
com.Parameters.AddWithValue("@an", textBox5.Text);
com.Parameters.AddWithValue("@ad", textBox6.Text);
com.Parameters.AddWithValue("@t", textBox7.Text);
// try
// {
con.Open();
com.ExecuteNonQuery();
//int result =
//if (result > 0)
// {
MessageBox.Show("مشخصات انبار (" + textBox3.Text + ") ویرایش شد", "ویرایش", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
Anbarkala anb = (Anbarkala)Application.OpenForms["Anbarkala"];

aslan
یک شنبه 26 بهمن 1393, 22:40 عصر
????
لطفا نتیجه breakpoint روی ردیف 21 کد؟؟؟
وقتی برنامه اجرا میشه به خط 21 میرسه یا نه ؟

aslan
یک شنبه 26 بهمن 1393, 22:40 عصر
تکراری ... حذف شود لطفا

sajadsobh
یک شنبه 26 بهمن 1393, 22:56 عصر
کوئری آپدیت رو ببین آخه!!

ghasem110deh
یک شنبه 26 بهمن 1393, 23:09 عصر
کوئری آپدیت رو ببین آخه!!

سلام آقا سجاد ...
چشه ؟ فقط کار نمیکنه :)

systam
یک شنبه 26 بهمن 1393, 23:11 عصر
سلام
سجاد راست میگه کوئری آپدیت مشکل داره
این این کد همه رکورد ها اپدیدت میشهحاما باید از where استفاده کدی درکوئری

ghasem110deh
یک شنبه 26 بهمن 1393, 23:12 عصر
????
لطفا نتیجه breakpoint روی ردیف 21 کد؟؟؟
وقتی برنامه اجرا میشه به خط 21 میرسه یا نه ؟

یه چیزی میگم ... نخندین ! breakpoint هم هیچی نشون نداد (یا من نتونستم کار کنم) ...
بریک پوینت گذاشتم بعد هم f5 زدم برنامه اجرا شد ... مثل دفعات قبل فقط پنجره ویرایش بسته شد .

ghasem110deh
یک شنبه 26 بهمن 1393, 23:14 عصر
سلام
سجاد راست میگه کوئری آپدیت مشکل داره
این این کد همه رکورد ها اپدیدت میشهحاما باید از where استفاده کدی درکوئری

سلام ...

where Id = @i گذاشتم دیگه !

ghasem110deh
یک شنبه 26 بهمن 1393, 23:17 عصر
اینم فورم های اصلی و ویرایش (عکس ضمیمه)

وقتی رو دکمه کلیک میکنی پنجره ویرایش بسته میشه !
یه بار فرم رو پاک کردم و دوباره نوشتم (گفتم شاید با دکمه کلوز قاتی شده) .... :قهقهه:

aslan
یک شنبه 26 بهمن 1393, 23:38 عصر
یه چیزی میگم ... نخندین ! breakpoint هم هیچی نشون نداد (یا من نتونستم کار کنم) ...
بریک پوینت گذاشتم بعد هم f5 زدم برنامه اجرا شد ... مثل دفعات قبل فقط پنجره ویرایش بسته شد .

else را حذف کنید

ghasem110deh
یک شنبه 26 بهمن 1393, 23:46 عصر
پست 6 رو نگاه کنید ...
الان فقط کدای ویرایش باید اجرا بشن ...
بقیه کدا رو با // غیر فعال کردم ؛ ولی فقط فرم بسته میشه :متعجب:

aslan
دوشنبه 27 بهمن 1393, 00:00 صبح
پست 6 رو نگاه کنید ...
الان فقط کدای ویرایش باید اجرا بشن ...
بقیه کدا رو با // غیر فعال کردم ؛ ولی فقط فرم بسته میشه :متعجب:

خط 17 کد ( else ) را حذف کنید و نتیجه را ببینید ....

else کد زیر منظورمه :


if (string.IsNullOrWhiteSpace(textBox6.Text))
errorProvider1.SetError(textBox6, "لطفا نشانی را وارد کیند");
else
{
// try
// {
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True");
SqlCommand com = new SqlCommand();

ghasem110deh
دوشنبه 27 بهمن 1393, 00:11 صبح
الان فقط این کدها هستن :

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=AnbarDB;Integrated Security=True"); SqlCommand com = new SqlCommand();
com.Connection = con;
com.CommandText = "Update TAnbar Set Id = @i, Cod = @c, Anbar = @a, Kalatype = @k, Anbardar = @an, Adr = @ad, Toz = @t Where Id = @i";
com.Parameters.AddWithValue("@i", textBox1.Text);
com.Parameters.AddWithValue("@c", textBox2.Text);
com.Parameters.AddWithValue("@a", textBox3.Text);
com.Parameters.AddWithValue("@k", textBox4.Text);
com.Parameters.AddWithValue("@an", textBox5.Text);
com.Parameters.AddWithValue("@ad", textBox6.Text);
com.Parameters.AddWithValue("@t", textBox7.Text);
con.Open();
com.ExecuteNonQuery();
con.Close();
con.Dispose();

نمیفهمم ، چرا فورم بسته میشه ؟

aslan
دوشنبه 27 بهمن 1393, 00:20 صبح
یعنی کدهای قسمت
private void stiButton1_Click(object sender, EventArgs e)
فقط اینایی هست که در پست 18 قرار دادین ؟؟؟!!!!!! اگر کدهای دیگه ای هست بصورت کامل اینجا قرار بدین

ghasem110deh
دوشنبه 27 بهمن 1393, 00:27 صبح
فورم رو پاک کردم دارم از اول مینویسم ...
خیلی بلدیم ! گیر باگهای باحالم میوفتیم !
عین این کدا توی فورم دیگه جواب داده ! نمیدونم چش بود (هر چی بود پاکش کردم رفت)
---------------------------------------------------------------------------------------------
فقط اینارو چطوری توی foreach چجوری قرار بدم :

if (string.IsNullOrWhiteSpace(textBox1.Text)) errorProvider1.SetError(textBox1, "شماره بارگذاری نشده است");
if (string.IsNullOrWhiteSpace(textBox2.Text))
errorProvider1.SetError(textBox2, "لطفا شناسه را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox3.Text))
errorProvider1.SetError(textBox3, "لطفا نام انبار را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox4.Text))
errorProvider1.SetError(textBox4, "لطفا نوع کالا را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox5.Text))
errorProvider1.SetError(textBox5, "لطفا نام انباردار را وارد کیند");
if (string.IsNullOrWhiteSpace(textBox6.Text))
errorProvider1.SetError(textBox6, "لطفا نشانی را وارد کیند");

ممنون بایت توجهتون !

sajaaaaad
دوشنبه 27 بهمن 1393, 07:01 صبح
سلام.
من خیلی وارد نیست ولی بعضی وقتا منم به این مشکلات میخورم و میبینی فرم هام قاطی میکنن، اصولا با پاک کردن پوشه دی باگ و ری بیلد کردن برنامه یکسری مشکلات اینجوری از بین میره.
من خودم شده بارها همین حالتو داشته برنامم که اصلا نمیفهمیدم از کجا کدا اجرا میشن با این کار مشکلم حل شده. دفعه بعدی این کارم تست کن :لبخندساده:
اینم برای سوالت شاید کمکت کنه (البته مطمئن نیستم ها) :لبخند:
موفق باشی


foreach ( TextBox tb in this.Controls.OfType<TextBox>())
{
if (txtName.Text.Trim() == "")
{
errorProvider1.SetError(tb, "این کادر نمی تواند خالی باشد");
}
}

.
بعدشم برای تو که میخوای برای هرکدوم یک نوشته ی متفاوت وارد کنی همون روشی که رفتی خوبه.