Milad.PJ
دوشنبه 19 آبان 1393, 19:22 عصر
سلام
من می خوام در یک محیط غیر متصل چند تا رکورد (ROW) به جدولم اضافه کنم و بعد هر وقت خواستم با یک دکه منبع اصلی رو با داده های جدید به روز رسانی کنم ، زمانی که تک به تک به روز رسانی می کنم مشکلی ایجاد نمی شه اما اگر بیشتر از یک رکورد رو بخوام در یک زمان اضافه کنم فقط رکورد آخر در DB اضافه می شه و بعد DataAdapter خطا می ده ( چون دوباره می خواد رکورد آخر رو اضافه کنه و به خاطر فیلد کلید نمی شه ) ! چرا از آخر اضافه می کنه و قبلیهاش رو کلا اضافه نمی کنه ؟؟؟ :متفکر:
این هم کد من :
کد درج:
private void btnInsert_Click(object sender, EventArgs e)
{
dtTESTDB = dsTESTDB.Tables["dstblTESTDB"];
drTblTESTDB = dtTESTDB.NewRow();
drTblTESTDB.BeginEdit();
drTblTESTDB["ID"] = txtID.Text;
drTblTESTDB["Name"] = txtName.Text;
drTblTESTDB["Family"] = txtFamily.Text;
dtTESTDB.Rows.Add(drTblTESTDB);
dtlAdd= dsTESTDB.Tables[0].GetChanges(DataRowState.Added);
drTblTESTDB.EndEdit();
cmd.Parameters.AddWithValue("@ID", int.Parse(txtID.Text));
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@Family", txtFamily.Text);
cmd.CommandType = CommandType.Text;
cmd.Connection = SQLConnection;
cmd.CommandText = "insert into tblTESTDB
(ID,Name,Family) values (@ID,@Name,@Family)";
cmd.UpdatedRowSource = UpdateRowSource.None;
da.InsertCommand = cmd;
}
کد به روز رسانی (همسان سازی):
private void btnSynchronize_Click(object sender, EventArgs e)
{
try
{
da.UpdateBatchSize = 0;// dttblAdd.Rows.Count;
da.Update(dtlAdd);
dsTESTDB.AcceptChanges();
}
catch (SqlException sqlEX)
{
MessageBox.Show(sqlEX.ToString());
}
catch (System.Exception EX)
{
MessageBox.Show(EX.ToString());
}
}
ممنون می شم اگر راهنماییم کنید !
من می خوام در یک محیط غیر متصل چند تا رکورد (ROW) به جدولم اضافه کنم و بعد هر وقت خواستم با یک دکه منبع اصلی رو با داده های جدید به روز رسانی کنم ، زمانی که تک به تک به روز رسانی می کنم مشکلی ایجاد نمی شه اما اگر بیشتر از یک رکورد رو بخوام در یک زمان اضافه کنم فقط رکورد آخر در DB اضافه می شه و بعد DataAdapter خطا می ده ( چون دوباره می خواد رکورد آخر رو اضافه کنه و به خاطر فیلد کلید نمی شه ) ! چرا از آخر اضافه می کنه و قبلیهاش رو کلا اضافه نمی کنه ؟؟؟ :متفکر:
این هم کد من :
کد درج:
private void btnInsert_Click(object sender, EventArgs e)
{
dtTESTDB = dsTESTDB.Tables["dstblTESTDB"];
drTblTESTDB = dtTESTDB.NewRow();
drTblTESTDB.BeginEdit();
drTblTESTDB["ID"] = txtID.Text;
drTblTESTDB["Name"] = txtName.Text;
drTblTESTDB["Family"] = txtFamily.Text;
dtTESTDB.Rows.Add(drTblTESTDB);
dtlAdd= dsTESTDB.Tables[0].GetChanges(DataRowState.Added);
drTblTESTDB.EndEdit();
cmd.Parameters.AddWithValue("@ID", int.Parse(txtID.Text));
cmd.Parameters.AddWithValue("@Name", txtName.Text);
cmd.Parameters.AddWithValue("@Family", txtFamily.Text);
cmd.CommandType = CommandType.Text;
cmd.Connection = SQLConnection;
cmd.CommandText = "insert into tblTESTDB
(ID,Name,Family) values (@ID,@Name,@Family)";
cmd.UpdatedRowSource = UpdateRowSource.None;
da.InsertCommand = cmd;
}
کد به روز رسانی (همسان سازی):
private void btnSynchronize_Click(object sender, EventArgs e)
{
try
{
da.UpdateBatchSize = 0;// dttblAdd.Rows.Count;
da.Update(dtlAdd);
dsTESTDB.AcceptChanges();
}
catch (SqlException sqlEX)
{
MessageBox.Show(sqlEX.ToString());
}
catch (System.Exception EX)
{
MessageBox.Show(EX.ToString());
}
}
ممنون می شم اگر راهنماییم کنید !