PDA

View Full Version : سوال: بعد از اولین ثبت اگه دوباره سعی بر ثبت رکورد نمائیم خطا می ده؟



imani1983
جمعه 28 خرداد 1389, 02:04 صبح
بعد از اولین ثبت اگه دوباره سعی بر ثبت رکورد نمائیم خطا می ده؟
برای اینکه دوباره بتوانیم ذخیره کنیم باید از فرم خارج شده ودوباره وارد فرم بشی!!؟
سئوال دوم اینکه چگونه رکوردهای انتخاب شده یا( searchشده) را یکجا حذف کنیم؟
:متفکر: :متفکر: :متفکر: :متفکر: :متفکر::عصبانی++:

cardano7
جمعه 28 خرداد 1389, 10:35 صبح
سلام
نمی دونم شما برای کاربر چه شرطی گذاشتید که هر جور هم که داده ها رو پر می کنم باز هم بهم گیر میده.
اومدم که برنامه را Trace کنم که دیدم این Error رو میده:
http://i49.tinypic.com/jaibyd.jpg

نمی دونم شما چه کار کردید. میشه بگید چرا برنامه ی شما به یک سری فایل های خارج از برنامه وابسته هست؟

imani1983
جمعه 28 خرداد 1389, 13:12 عصر
FarsimessageBox.dll را به reference اضافه کن!
احتمالاً از این باشد;

imani1983
شنبه 29 خرداد 1389, 02:00 صبح
از دوستان کسی هست کمک کنه؟!!

imani1983
شنبه 29 خرداد 1389, 17:12 عصر
دوستان اگه کسی مشکل این قسمت از برنامه را می دانندخواهش می کنم کمک کنند
گیر این مشکل هستم:گریه:

peikesms123
شنبه 29 خرداد 1389, 18:26 عصر
اگه لطف کنی و Error که میده بزاری شاید بشه کمک کنی.

imani1983
یک شنبه 30 خرداد 1389, 01:13 صبح
اولین بار که دکمه ثبت را می زنیم هیچ اروری نمیده ورکورد ثبت می شه ولی برای دومین بار که کلیک می کنیم ارور بالا را می ده :متفکر:

توراخدا یکی این مشکل رو حل کنه توهمه جای برنامه ام که از insert استفاده کردم این خطا را می ده!!!
منتظرم

اوبالیت به بو
یک شنبه 30 خرداد 1389, 03:10 صبح
SP استفاده کردی؟ تو SP چی نوشتی؟ از فیلد CodeKala داره خطا می گیره.

کلید هست یا نیست؟ شاید رکورد تکراری داری تو جدولی اضافه می کنی که فیلد کلید داره و در هنگام درج دوم همون مقدار قبلی رو وارد می کنی، بدون اینکه خبر داشته باشی

peikesms123
یک شنبه 30 خرداد 1389, 17:42 عصر
این خطایی که میگیره به خاطر اینه که شما اجازه وارد کردن کدکالا تکراری را ندارید. دو دلیل داره یا فیلد کدکالا را یک کلید کردید یا انحصاری که همون Unique که تو عکس هستش. این خطا درست است و مشکلی نداره برای رفع این مشکل هم باید به کاربر بگید که کدکالا فقط برای یک کالا ثبت می‎شود و در موقع ثبت کالا چک کنید که کدکالا تکراری نباشه. اگه بانک رو هم میزاشتید بهتر بود. اگه مشکلتون حل نشد بگید تا بررسی کنیم.

imani1983
دوشنبه 31 خرداد 1389, 19:42 عصر
دوست عزیز پایگاه داده درون پوشه هست یه نگاهی بنداز SQl2000 هست Atach کن!!
2- نه این فیلدی که من وارد می کنم کاملاًتکراری نیست ،منحصر به فرده% من فکر می کنم باید Datatable را خالی کنم؟ یا ...
Datatable.clear()
دوستان خواهش می کنم به این مشکل من رسیدگی کنین ممنون می شم %:گریه::گریه::گریه::گریه::گریه ::گریه::گریه::گریه:

imani1983
سه شنبه 01 تیر 1389, 20:31 عصر
پایگاه داده اش هم اینه

peikesms123
چهارشنبه 02 تیر 1389, 15:50 عصر
سلام
دوست عزیز اگر به عکسی که خودتون گذاشتید دقیق نگاه کنید متوجه می‎شوید که اشکال از کجاست.
شما دو فیلد کدکالا و نام کالا (codekala, namekala) را باهم یک کلید اصلی تعریف کرده‎اید. این به این معناست که امکان وارد کردن کدکالا و نام کالا یکسان وجود ندارد. ساده تر بگم مثلآ برای وارد کردن یک کالا به نام "مداد" شما باید یک کدکالا به آن اختصاص دهید، مثل "101"، شما میتونید با عدد "101" یک کالای دیگر ثبت کنید ولی نام آن نباید "مداد" باشد. اگر این کار انجام بدهید برنامه خطا می‎دهد.

imani1983
چهارشنبه 02 تیر 1389, 21:48 عصر
این کار رو انجام دادم namekala را از primerykey در آوردم و یک فیلد کلید موند باز امتحان کردم همون ارور را می ده ایندفعه همه فیلد کلید ها را برداشتم باز همون اررو را داد%
من فکر می کنم که این ایرادش از پایگاه داده نیست فکر کنم از دستورات داخل دگمه ثبت هست اصلاً sqlcommnd یا bal_kalaTableAdapter را خالی نمیکنه %
از دوستان اگه کسی کد ثبت کامل رکورد شبیه این برنامه که ارور نده بزارند ممنون می شم چون یک هفته است منتظر جواب این مشکل شدم ممنون%
:بوس::بوس::بوس:
:قلب::قلب::قلب:
:تشویق::تشویق::تشویق:


private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "")
{
MessageBox.Show("کاربر گرامی لطفاً کد کالا را وارد کنید", "اعلان", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
textBox1.Focus();
}
else
if (textBox2.Text == "")
{
MessageBox.Show("ًکاربر گرامی لطفاً نام کالا را وارد کنید", "اعلان", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
textBox2.Focus();
}
else
try
{
DialogResult res = FMessageBox.Show(" آیااز ثبت کالا مطمئن هستيد؟ ", "ثبت کالا به انبار", FMessageBoxButtons.YesNo, FMessageBoxIcons.Question);
if (res == DialogResult.Yes)
{
sqlCommand1.Connection.Close();
sqlCommand1.CommandText = "insert into Bal_kala (codekala,namekala,tabage,tedad,varnumeric,contry, company,varkala,minmojodi,maxmojodi,datainput,code anbar,status,vahedanbar,valueXarid,valueFrosh)VALU ES(@codekala,@namekala,@tabage,@tedad,@varnumeric, @contry,@company,@varkala,@minmojodi,@maxmojodi,@d atainput,@codeanbar,@status,@vahedanbar,@valueXari d,@valueFrosh)";
sqlCommand1.Parameters.AddWithValue("@codekala", textBox1.Text);
sqlCommand1.Parameters.AddWithValue("@namekala", textBox2.Text);
sqlCommand1.Parameters.AddWithValue("@tabage", textBox3.Text);
sqlCommand1.Parameters.AddWithValue("@tedad", textBox4.Text);
sqlCommand1.Parameters.AddWithValue("@varnumeric", comboBox5.Text);
sqlCommand1.Parameters.AddWithValue("@contry", comboBox3.Text);
sqlCommand1.Parameters.AddWithValue("@company", comboBox1.Text);
sqlCommand1.Parameters.AddWithValue("@varkala", comboBox6.Text);
sqlCommand1.Parameters.AddWithValue("@minmojodi", textBox6.Text);
sqlCommand1.Parameters.AddWithValue("@maxmojodi", textBox7.Text);
sqlCommand1.Parameters.AddWithValue("@datainput", maskedTextBox2.Text);
sqlCommand1.Parameters.AddWithValue("@codeanbar", textBox8.Text);
sqlCommand1.Parameters.AddWithValue("@status", comboBox4.Text);
sqlCommand1.Parameters.AddWithValue("@vahedanbar", textBox9.Text);
sqlCommand1.Parameters.AddWithValue("@valueXarid", textBox10.Text);
sqlCommand1.Parameters.AddWithValue("@valueFrosh", textBox11.Text);
sqlCommand1.Connection.Open();
int insert = sqlCommand1.ExecuteNonQuery();
if (insert == 1)
{
this.bal_kalaTableAdapter.Fill(this.regkalaDataSet .Bal_kala);
FMessageBox.Show("کالا با موفقیت اضافه شد", "پیام", FMessageBoxButtons.OK, FMessageBoxIcons.Information);
this.toolStripProgressBar1.Visible = true;
int i = 0;
for (i = 0; i < 100; i += 1)
{
this.toolStripProgressBar1.ProgressBar.Value = i;
this.toolStripProgressBar1.ProgressBar.Step = 100;
}
this.toolStripProgressBar1.Visible = false;
sqlCommand1.Connection.Close();
}
else
{
FMessageBox.Show("در فرآيند ذخيره سازي مشكلي پيش آمده است", "پیام", FMessageBoxButtons.OK, FMessageBoxIcons.Information);
}
}
}
catch (Exception)
{
FMessageBox.Show("!ثبت نشد.لطفاً كمي دقت نمائيد", "پیام خطا", FMessageBoxButtons.OK, FMessageBoxIcons.Error);
textBox1.Focus();
}
}

imani1983
جمعه 04 تیر 1389, 14:15 عصر
بالاخره تونستم این مشکل رفع کنم
:تشویق::تشویق::تشویق:

cardano7
جمعه 04 تیر 1389, 16:28 عصر
:تشویق: اگه بتونید همین جا بگید ایراد از چی بوده، ممنون میشیم.

Legend M.A.R
شنبه 05 تیر 1389, 05:28 صبح
فکر کنم بدونم مشکلتون از کجا بوده بعد از ثبت اطلاعات باید sqlCommand.Parameter.Clear رو باید اجرا می کردید؟ درست میگم

imani1983
یک شنبه 06 تیر 1389, 21:05 عصر
اول conn را به صورت دستی ایجاد کردم

SqlConnection conn = new SqlConnection();
دوم Command را به صورت دستی وارد کردم

SqlCommand Command = new SqlCommand();
سوم connection string را نوشتم در حالی که قبلاً از کنترل استفاده می کردم
command را با conn ارتباط دادم
چهارم اینکه قبل ازنوشتن دستور sql نباید command را close می کردم (زمانی که دستور اس کیو ال اجرا بشه command.close(); اجرا بشه و
در آخر قبل از اجرای sql باید command.open(); صورت می گرفت
تمام