آقا دوباره سلام مثل اینکه این مشکل ما نمی خواد هیچ موقع درست بشه . من از کدی که شما زحمتشو کشید استفاده کردم ولی یادم رفت بگم که من از این کد در 2 جا استفاده می کنم یکی برای گوشیهای وارد شده به تعمیرگاه و یکی برای گوشیهای تعمیر شده در قسمت گوشیهای وارد شده اگه 2 تا گوشی اومده باشه می زنه 2 و اگه همون 2 تا گوشی رو اطلاعات دیگشو تکمیل کنم باز اون 2 گوشی تعمیر شده رو با 2 گوشی که وارد تعمیرگاه شده رو جمع می کنه یعنی تعداد 2 رو با 2 جمع می کنه عوض اینکه 2 برگردونه 4 بر می گردونه
در ضمن من تو فرم main از این کد استفاده می کنم :
Private void frmMain_Load(object sender, EventArgs e)
{
cmd2 = new OleDbCommand("SELECT * FROM Repairs", cn2);
cn2.Open();
da2 = new OleDbDataAdapter(cmd2);
da2.Fill(ds2);
if (ds2.Tables[0].Rows.Count > 0)
{
RepairID = ds2.Tables[0].Rows.Count;
lblVorodi.Text = "" + RepairID.ToString();
}
cmd2 = new OleDbCommand("SELECT * FROM Customers", cn2);
da2 = new OleDbDataAdapter(cmd2);
da2.Fill(ds2);
if (ds2.Tables[0].Rows.Count > 0)
{
CustomerID = ds2.Tables[0].Rows.Count;
lblVorodiTaEmrooz.Text = "" + CustomerID.ToString();
}
cn2.Close();
}
در فرم Customers از این کد استفاده می کنم
private void btnAdd_Click(object sender, EventArgs e)
{
DataRow dr = ds2.Tables[0].NewRow();
frmMain.CustomerID +=1;
dr["CustomerID"] = frmMain.CustomerID;
dr["CustomerName"] = txtName.Text;
dr["PhoneModel"] = txtModel.Text;
dr["SerialNumber"] = txtSerialNumber.Text;
dr["Problem"] = txtProblem.Text;
dr["VaziyateZaheri"] = txtVaziyateZaheri.Text;
dr["ShomareTamas"] = txtShomareTamas.Text;
dr["VasayeleHamrah"] = rtxtVasayeleHamrah.Text;
dr["LoginDate"] = txtLoginDate.Text;
dr["LoginTime"] = txtTime.Text;
dr["Description"] = richDescription.Text;
ds2.Tables[0].Rows.Add(dr);
if (txtName.Text == "" || txtModel.Text == "" || txtProblem.Text == "" || txtSerialNumber.Text == "" || txtShomareTamas.Text == "")
{
FMessegeBox.FarsiMessegeBox.Show("لطفا فیلدهای ستاره دار را مقداردهی نمائید", "اخطار", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Exclamtion);
}
else if (FMessegeBox.FarsiMessegeBox.Show("آیا مایل به ذخیره اطلاعات برای مشتری جدید هستید ؟", "ثبت مشتری جدید", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
{
OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Mobile.mdb;Persist Security Info=True");
cn.Open();
OleDbCommand cm = new OleDbCommand("insert into Customers(CustomerName,PhoneModel,SerialNumber,Problem,VaziyateZaheri,ShomareTamas,VasayeleHamrah,LoginDate,LoginTime,Description) values('" + txtName.Text + "','" + txtModel.Text + "','" + txtSerialNumber.Text + "','" + txtProblem.Text + "','" + txtVaziyateZaheri.Text + "','" + txtShomareTamas.Text + "','" + rtxtVasayeleHamrah.Text + "','" + txtLoginDate.Text + "','" + txtTime.Text + "','" + richDescription.Text + "')", cn);
cm.ExecuteNonQuery();
cn.Close();
FMessegeBox.FarsiMessegeBox.Show("اطلاعات مشتری جدید با مؤفقیت ذخیره شد", " مشتری جدید");
ShowData();
frmCustomers_Load(null, null);
txtModel.Clear();
txtName.Clear();
txtProblem.Clear();
txtSerialNumber.Clear();
txtShomareTamas.Clear();
txtVaziyateZaheri.Clear();
rtxtVasayeleHamrah.Clear();
richDescription.Clear();
}
}
و در فرم Repairs از این کد استفاده می کنم
private void btnAdd_Click(object sender, EventArgs e)
{
DataRow dr = ds2.Tables[0].NewRow();
frmMain.RepairID += 1;
dr["RepairID"] = frmMain.RepairID;
dr["CustomerID"] = frmMain.RepairID;
dr["Tamirkar"] = frmMain.RepairID;
dr["GheteeMasrafi"] = frmMain.RepairID;
dr["GheymatehGheteeMasrafi"] = frmMain.RepairID;
dr["Price"] = frmMain.RepairID;
dr["SharheTamir"] = frmMain.RepairID;
dr["LogOutDate"] = frmMain.RepairID;
dr["LogOutTime"] = frmMain.RepairID;
ds2.Tables[0].Rows.Add(dr);
if (cbGhabz.Text == "" || txtTamirkar.Text == "" || txtHazine.Text == ""||txtGheymateGhetee.Text=="")
{
FMessegeBox.FarsiMessegeBox.Show("لطفا فیلدهای ستاره دار را مقداردهی نمائید", "اخطار", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Exclamtion);
}
else if (FMessegeBox.FarsiMessegeBox.Show("آیا مایل به ذخیره گوشی تعمیر شده جدید هستید ؟", "ذخیره گوشی تعمیر شده جدید", FMessegeBox.FMessegeBoxButtons.YesNo, FMessegeBox.FMessegeBoxIcons.Question) == DialogResult.Yes)
{
ds2.Clear();
da.SelectCommand.CommandText = "select CustomerID from Repairs where CustomerID="+cbGhabz.Text+"";
da.Fill(ds2,"CustomerID");
if (ds2.Tables["CustomerID"].Rows.Count > 0)
{
DialogResult d = FMessegeBox.FarsiMessegeBox.Show("این شماره قبض قبلا ثبت شده است ، لطفا شماره قبض را با دقت وارد نمائید", "اخطار", FMessegeBox.FMessegeBoxButtons.Ok, FMessegeBox.FMessegeBoxIcons.Error);
}
else
{
DataBase db = new DataBase();
db.DoCommand("insert into Repairs(CustomerID,Tamirkar, GheteeMasrafi, GheymatehGheteeMasrafi, Price, SharheTamir, LogOutDate,LogOutTime)" + " values ("+cbGhabz.Text+",'" + txtTamirkar.Text + "','" + txtGhetee.Text + "','" + txtGheymateGhetee.Text + "','" + txtHazine.Text + "','" + rtbSharheTamir.Text + "','" + txtDate.Text + "','" + txtTime.Text + "')");
frmRepairs_Load(sender, e);
dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1];
FMessegeBox.FarsiMessegeBox.Show("گوشی تعمیر شده جدید با مؤفقیت ذخیره شد", "گوشی تعمیر شده جدید");
txtGhetee.Clear();
txtHazine.Clear();
txtTamirkar.Clear();
rtbSharheTamir.Clear();
txtGheymateGhetee.Text = "0";
}
}
}