aliyeh
دوشنبه 16 بهمن 1391, 09:26 صبح
سلام به همه دوستان
من برای ثبت موقت اطلاعات در گریدویو و بعد نهایی کردن تغییرات از sqldataadapter استفاده می کردم.
الان دارم برنامه رو با روش معماری سه لایه انجام می دم. بنا بر این در تعریف sqlcommand و مقداردهی dataadapter موندم. چطور می تونم این کار رو انجام بدم؟
این هم نمونه کدی هست که در گذشته ازش استفاده می کردم:
//----------select command setting for data adapter---------
SqlCommand cmd = new SqlCommand("select * from Exams", cnn);
da.SelectCommand = cmd;
//-----------insert command setting for data adapter-------
cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "insert into Exams(name) values(@name)";
//------------declare parameter----------------
SqlParameter pm = new SqlParameter();
pm.DbType = DbType.String;
pm.Direction = ParameterDirection.Input;
pm.ParameterName = "@name";
pm.SourceColumn = "name";
cmd.Parameters.Add(pm);
da.InsertCommand = cmd;
//--------update command setting for data adapter--------------
cmd=new SqlCommand();
cmd.Connection=cnn;
cmd.CommandText="update Exams set name=@name where id=@oldid";
//-------declare parameter---------
pm = new SqlParameter();
pm.ParameterName = "@name";
pm.SourceColumn = "name";
pm.DbType = DbType.String;
cmd.Parameters.Add(pm);
pm = new SqlParameter();
pm.ParameterName = "@oldid";
pm.SourceColumn = "id";
pm.DbType = DbType.Int32;
pm.SourceVersion = DataRowVersion.Original;
cmd.Parameters.Add(pm);
da.UpdateCommand = cmd;
//----------delete command setting for data adapter------------
cmd=new SqlCommand();
cmd.Connection=cnn;
cmd.CommandText="delete Exams where id=@id";
//---------declare parameter------------
pm=new SqlParameter();
pm.ParameterName="@id";
pm.DbType=DbType.Int32;
pm.SourceColumn="id";
pm.SourceVersion=DataRowVersion.Original;
cmd.Parameters.Add(pm);
da.DeleteCommand = cmd;
if (IsPostBack)
ds = (DataSet1)Session["ds"];
else
{
ds = new DataSet1();
da.Fill(ds.Exams);
Session.Add("ds", ds);
da.Update(ds.Exams);
}
GridView1.DataSource = ds;
GridView1.DataMember = "Exams";
GridView1.DataBind();
cnn.Close();
من برای ثبت موقت اطلاعات در گریدویو و بعد نهایی کردن تغییرات از sqldataadapter استفاده می کردم.
الان دارم برنامه رو با روش معماری سه لایه انجام می دم. بنا بر این در تعریف sqlcommand و مقداردهی dataadapter موندم. چطور می تونم این کار رو انجام بدم؟
این هم نمونه کدی هست که در گذشته ازش استفاده می کردم:
//----------select command setting for data adapter---------
SqlCommand cmd = new SqlCommand("select * from Exams", cnn);
da.SelectCommand = cmd;
//-----------insert command setting for data adapter-------
cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "insert into Exams(name) values(@name)";
//------------declare parameter----------------
SqlParameter pm = new SqlParameter();
pm.DbType = DbType.String;
pm.Direction = ParameterDirection.Input;
pm.ParameterName = "@name";
pm.SourceColumn = "name";
cmd.Parameters.Add(pm);
da.InsertCommand = cmd;
//--------update command setting for data adapter--------------
cmd=new SqlCommand();
cmd.Connection=cnn;
cmd.CommandText="update Exams set name=@name where id=@oldid";
//-------declare parameter---------
pm = new SqlParameter();
pm.ParameterName = "@name";
pm.SourceColumn = "name";
pm.DbType = DbType.String;
cmd.Parameters.Add(pm);
pm = new SqlParameter();
pm.ParameterName = "@oldid";
pm.SourceColumn = "id";
pm.DbType = DbType.Int32;
pm.SourceVersion = DataRowVersion.Original;
cmd.Parameters.Add(pm);
da.UpdateCommand = cmd;
//----------delete command setting for data adapter------------
cmd=new SqlCommand();
cmd.Connection=cnn;
cmd.CommandText="delete Exams where id=@id";
//---------declare parameter------------
pm=new SqlParameter();
pm.ParameterName="@id";
pm.DbType=DbType.Int32;
pm.SourceColumn="id";
pm.SourceVersion=DataRowVersion.Original;
cmd.Parameters.Add(pm);
da.DeleteCommand = cmd;
if (IsPostBack)
ds = (DataSet1)Session["ds"];
else
{
ds = new DataSet1();
da.Fill(ds.Exams);
Session.Add("ds", ds);
da.Update(ds.Exams);
}
GridView1.DataSource = ds;
GridView1.DataMember = "Exams";
GridView1.DataBind();
cnn.Close();