我要实现的功能是 如果数据库中的某条信息在修改过后不包括了,则会被删除所以我的思路是先删除表中的所有数据,然后再添加修改过后的数据,
可是问题也来了,按我下面的代码可以实现,但是如果当SqlCommand cmd = new SqlCommand这一行出现异常的情况就完了,先删除所有数据,再去发现异常的话,那我表里什么数据都没有了,应该怎么去处理这个异常呢
if (sm.delall() > 0)//删除表中所有数据
{
foreach (DataRowView drv in dv)
{
SqlCommand cmd = new SqlCommand("insert into manage values('" + drv[1] + "','" + drv[2] + "','" + drv[3] + "','" + drv[4] + "','" + drv[5] + "')", conn);//再添加其他数据
cmd.ExecuteNonQuery();
} }
可是问题也来了,按我下面的代码可以实现,但是如果当SqlCommand cmd = new SqlCommand这一行出现异常的情况就完了,先删除所有数据,再去发现异常的话,那我表里什么数据都没有了,应该怎么去处理这个异常呢
if (sm.delall() > 0)//删除表中所有数据
{
foreach (DataRowView drv in dv)
{
SqlCommand cmd = new SqlCommand("insert into manage values('" + drv[1] + "','" + drv[2] + "','" + drv[3] + "','" + drv[4] + "','" + drv[5] + "')", conn);//再添加其他数据
cmd.ExecuteNonQuery();
} }
SqlConnection conn = new SqlConnection(ConfigurationManager.AppSettings["ad_518"]);
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
try
{
if (isdel.Checked)
{ kehu kh = new kehu();
if (kh.delall() > 0)
{
foreach (DataRowView drv in dv)
{
SqlCommand cmd = new SqlCommand("insert into kehuyuan values('" + drv[1] + "','" + int.Parse(drv[2].ToString().Trim()) + "')", conn);
//SqlCommand cmd = new SqlCommand("updata from manage set username='" + drv[1] + "' and userpwd='" + drv[2] + "' and flag='" + drv[3] + "' and chinesename='" + drv[4] + "' and forbid='" + drv[5] + "' where id='" + drv[0] + "'", conn);
cmd.Transaction = tran;
cmd.ExecuteNonQuery();
tran.Commit();
} }
}
catch { tran.Rollback() ;Response.Redirect("error.htm");
为什么这样还是会异常然后全部删除啊?