举个例子如下:有一个dataset中含有一个datatable对象,该datatable对应数据库中的一个表,
datatable对象中存在一些行,有新行,已修改了的行,删除的行,如何用UpdateCommand,InsertCommand,DeleteCommand来将修改了的数据写回到数据库。并且做成事务型的
具体如下:
数据库表 ceiproggroup含有id(自动生成列),name//修改的页面update.aspx,当然我只是简单举例,实际程序比这复杂
SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pwd=sscyy;database=pwd");
SqlDataAdapter catDA = new SqlDataAdapter("select id,name from ceiproggroup ", conn);
DataSet catDS = new DataSet();
catDA.Fill(catDS, "ceiproggroup");foreach(DataRow myrow in catDS.Tables["ceiproggroup"].Rows){
if (myrow[1].ToString()=="eeee") myrow["name"]="fffff";
if (myrow[0].ToString()=="uuuu") myrow.Delete();
}
DataRow dr=catDS.Tables["ceiproggroup"].NewRow();
dr["name"]="uuuu";
catDS.Tables["ceiproggroup"].Rows.Add(dr);dr=catDS.Tables["ceiproggroup"].NewRow();
dr["name"]="eeee";
catDS.Tables["ceiproggroup"].Rows.Add(dr);
Session["ceiproggroup"]=catDS.Tables["ceiproggroup"];//将修改写回到数据库updateresult.aspx
SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pwd=sscyy;database=pwd");
SqlDataAdapter catDA = new SqlDataAdapter("select id,name from ceiproggroup", conn);
DataSet catDS = new DataSet();
catDA.Fill(catDS, "ceiproggroup");
catDS.Tables["ceiproggroup"].Rows.Clear();
catDS.Merge((DataTable)Session["ceiproggroup"]);
catDA.UpdateCommand = new SqlCommand("UPDATE ceiproggroup SET name = @name " +
"WHERE id = @id" , conn);
catDA.UpdateCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50, "name");
SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@id", SqlDbType.Int);
workParm.SourceColumn = "id";
workParm.SourceVersion = DataRowVersion.Original;
catDA.InsertCommand=????怎么写
catDA.DeleteCommand=????怎么写catDA.Update(catDS,"ceiproggroup");
datatable对象中存在一些行,有新行,已修改了的行,删除的行,如何用UpdateCommand,InsertCommand,DeleteCommand来将修改了的数据写回到数据库。并且做成事务型的
具体如下:
数据库表 ceiproggroup含有id(自动生成列),name//修改的页面update.aspx,当然我只是简单举例,实际程序比这复杂
SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pwd=sscyy;database=pwd");
SqlDataAdapter catDA = new SqlDataAdapter("select id,name from ceiproggroup ", conn);
DataSet catDS = new DataSet();
catDA.Fill(catDS, "ceiproggroup");foreach(DataRow myrow in catDS.Tables["ceiproggroup"].Rows){
if (myrow[1].ToString()=="eeee") myrow["name"]="fffff";
if (myrow[0].ToString()=="uuuu") myrow.Delete();
}
DataRow dr=catDS.Tables["ceiproggroup"].NewRow();
dr["name"]="uuuu";
catDS.Tables["ceiproggroup"].Rows.Add(dr);dr=catDS.Tables["ceiproggroup"].NewRow();
dr["name"]="eeee";
catDS.Tables["ceiproggroup"].Rows.Add(dr);
Session["ceiproggroup"]=catDS.Tables["ceiproggroup"];//将修改写回到数据库updateresult.aspx
SqlConnection conn=new SqlConnection("server=localhost;uid=sa;pwd=sscyy;database=pwd");
SqlDataAdapter catDA = new SqlDataAdapter("select id,name from ceiproggroup", conn);
DataSet catDS = new DataSet();
catDA.Fill(catDS, "ceiproggroup");
catDS.Tables["ceiproggroup"].Rows.Clear();
catDS.Merge((DataTable)Session["ceiproggroup"]);
catDA.UpdateCommand = new SqlCommand("UPDATE ceiproggroup SET name = @name " +
"WHERE id = @id" , conn);
catDA.UpdateCommand.Parameters.Add("@name", SqlDbType.NVarChar, 50, "name");
SqlParameter workParm = catDA.UpdateCommand.Parameters.Add("@id", SqlDbType.Int);
workParm.SourceColumn = "id";
workParm.SourceVersion = DataRowVersion.Original;
catDA.InsertCommand=????怎么写
catDA.DeleteCommand=????怎么写catDA.Update(catDS,"ceiproggroup");
解决方案 »
- IE 6 , 7 中如何限制DIV的最大高度?
- 使用xmlhttprequest调用ajax返回值不能显示在页面上
- 做一个登陆页面遇到了问题
- 单击一个服务器按扭,然后弹出一个新的窗口。作为搜索结果,怎么做?
- 把数据库中所有文章读取到IList 类型中。 如果在IList中查找某个ID 的文章呢?
- 怎么把选中的dropdownlist的值添加到另一个数据库中!
- vs2008安装成功了sp1补丁也打了,安装mvc2.0还是安装不上,为什么?
- 怎么在aspx页面上判断radioButtonList中哪一个被选中
- asp.net利用Excel打印
- 请高手帮忙 多个表的DataSet 100分答谢
- 用手写代码连接数据库并填充到DataSet之后,为什么在DataList或者DataGrid的控件的属性生成器中会找不到该数据集?
- 具弱的问题,哪位大侠花一眨眼的功夫帮我解决一下
try{
...
catDA.UpdateCommand.Transaction =myTran;
catDA.InsertCommand.Transaction =myTran;
catDA.DeleteCommand.Transaction =myTran;...catDA.Update(catDS,"ceiproggroup");
myTran.commit();
}catch
{
myTran.rollback();
}
就用SqlCommandBuilder来做呀!
它能够批量提交修改的dataset的数据到数据库
不毕这么麻烦
catDA.InsertCommand .Parameters.Add("@name", SqlDbType.NVarChar, 50, "name");
catDA.DeleteCommand = new SqlCommand("delete from ceiproggroup where id=@id", conn);
catDA.DeleteCommand .Parameters.Parameters.Add("@id", SqlDbType.Int,"ID");