PDA

View Full Version : مشکل در برنامه دفترچه تلفن



niroumand93
چهارشنبه 10 دی 1393, 21:20 عصر
با عرض سلام و خسته نباشید به دوستان عزیز
من یک دفترچه تلفن با دیتابیس اکسس رو داشتم که میخواستم این بانک اطلاعاتی تبدیل به sql شود و این کارو انجام دادم فقط چند مشکل به وجود اومده من تا فردا عصر این پروژه رو باید تحویل بدم با تشکر از دوستان
1-نرم افزار رو اجرا میکنم در قسمت اضافه کردن اطلاعات شامل نام و نام خانوادگی و دفترچه تلفن و ... اطلاعات رو وارد میکنم و در داخل دیتابیس ذخیره میشود ولی در قسمت ویرایش همان فرم اضافه کردن اطلاعات باز میشود و زمانی که اطلاعات رو ویرایش کردیم و دخیره میکنم این ارور کاربر گرامی شماره ثبت تکراری است رو میدهد خواهشا کمکم کنید این هم کد های مربوط به ذخیره است که ارور آخرین خط رو به من میده با تشکر از شما دوستان عزیز

private void btnSave_Click(object sender, EventArgs e)
{
try
{
if(txtID.Text=="")
{
MessageBox.Show("کاربر گرامی لطفا شماره ثبت را وارد کنید", "ثبت مخاطب", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
txtID.Select();
return;
}
if (txtLname.Text == "")
{
MessageBox.Show("کاربر گرامی لطفا نام خانوادگی را وارد کنید", "ثبت مخاطب", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
txtLname.Select();
return;
}
if (comboGroup.Text == "")
{
MessageBox.Show("کاربر گرامی لطفا گروه را وارد کنید", "ثبت مخاطب", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
comboGroup.Select();
return;
}

if (txtAddress.Text == "")
{
MessageBox.Show("کاربر گرامی لطفا آدرس را وارد کنید", "ثبت مخاطب", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
txtAddress.Select();
return;
}
if (Add_Edit == true)
{
SqlConnection ocn = new SqlConnection(ConnectionString);
SqlCommand ocm = new SqlCommand();
ocm.CommandText = "INSERT INTO TList (ID,Lname,LGroup,LTell,LSite,Laddress) VALUES (@p1,@p2,@p3,@p4,@p5,@p6)";
ocm.Parameters.Clear();
ocm.Parameters.AddWithValue("@p1", txtID.Text);
ocm.Parameters.AddWithValue("@p2", txtLname.Text);
ocm.Parameters.AddWithValue("@p3", comboGroup.Text);
ocm.Parameters.AddWithValue("@p4", txtHomePhone.Text);
ocm.Parameters.AddWithValue("@p5", txtSiteName.Text);
ocm.Parameters.AddWithValue("@p6", txtAddress.Text );
ocm.Connection = ocn;
ocn.Open();
ocm.ExecuteNonQuery();
ocn.Close();
ocn.Dispose();
MessageBox.Show("مخاطب مورد نظر با موفقیت ثبت شد", "ثبت مخاطل", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Close();
}
else
{
SqlConnection ocn = new SqlConnection(ConnectionString);
SqlCommand ocm = new SqlCommand();
ocm.CommandText = "UPDATE TList Set Lname=? , LGroup=? , LTell=? , LSite=? , Laddress=? Where ID=?";
ocm.Parameters.Clear();
ocm.Parameters.AddWithValue("@p6", txtLname.Text);
ocm.Parameters.AddWithValue("@p5", comboGroup.Text);
ocm.Parameters.AddWithValue("@p4", txtHomePhone.Text);
ocm.Parameters.AddWithValue("@p3", txtSiteName.Text );
ocm.Parameters.AddWithValue("@p2", txtAddress.Text);
ocm.Parameters.AddWithValue("@p1", txtID.Text);
ocm.Connection = null;
ocm.Connection = ocn;
ocn.Open();
ocm.ExecuteNonQuery();
ocn.Close();
ocm.Dispose();
ocn.Dispose();
MessageBox.Show("مخاطب مورد نظر با موفقیت ویرایش شد", "ویرایش مخاطب", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
Close();
}
}
catch
{
MessageBox.Show("کاربر گرامی شماره ثبت تکراری است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
}
}

محمد آشتیانی
چهارشنبه 10 دی 1393, 21:33 عصر
سلام
پارامترهای کوئری برای Sqlباید با نام باشند ، علامت سوال بجای اسم پارامتر در اکسس کاربرد داره
پارامترهای کوئری Update رو هم مثل کوئری Insert با نام بنویس حل میشه.



موفق باشید

niroumand93
چهارشنبه 10 دی 1393, 21:43 عصر
سلام جناب اشتیانی واقعا شرمندتونم یه نمونه میگین با تشکر از شما
من تازه وارد هستم و با کمک شما حرفه ای میشم
با همین کد در فرم اطلاعات رو اضافه میکنه اقای اشتیانی ولی برای ویرایش خطای کاربر گرامی شماره ثبت تکراری است", "خطا رو نشون میده با تشکر

محمد آشتیانی
چهارشنبه 10 دی 1393, 21:58 عصر
کوئری آپدیت تو کدی که قرار دادی باید به این شکل تغییر کنه


ocm.CommandText = "UPDATE TList Set Lname = @p6 , LGroup = @p5 , LTell = @p4 , LSite = @p3 , Laddress = @p2 Where ID = @p1";

niroumand93
چهارشنبه 10 دی 1393, 22:09 عصر
درست شد تشکر اقای اشتیانی ممنون از لطفتون واقعا خیلی ممنون از شما
فقط سوال اخرم اقای اشتیانی اینه که من این نرم افزار رو کامل کردم و بانک اکسس رو به sql تبدیلش کردم.برای اینکه در سیستم شخص مورد نظر اجرا بشه باید تو سیستم اون فرد sql server manegment نصب بشه.
خیلی ممنون از شما من دیگه سوالی ندارم واقعا تشکر میکنم از شما

ghossein
چهارشنبه 10 دی 1393, 23:04 عصر
سلام
از sql compact استفاده کنید.