1.asp.net页面上抓取数据,转换成xml字符串
2.将这个字符串作为参数传给存储过程
3.存储过程里,将这个xml读取成临时表
4.整个临时表插入到目标数据表中,这个过程可以使用sql
server的事务;其实在这里用不用事务问题都不大了,因为存储过程出错,数据插不进去的,还会抛出异常到asp.net后台,让后台进行处理异常.
您用游标或asp.net代码来循环,速度会比较慢的.
通过事务来实现,也就是说,SqlCommand的CmdText属性在一个方法当中可以赋多个SQL语句SqlConnection sqlConnection = new SqlConnection()
...初始化连接
// 开启事务
SqlTransaction sqlTransaction = sqlConnection.BeginTransaction()
// 将事务应用于Command
SqlCommand sqlCommand = new SqlCommand()
sqlCommand.Connection = sqlConnection
sqlCommand.Transaction = sqlTransaction
sqlCommand.CmdText=第一个sql语句
sqlCommand.ExcuteNoneQuery()
sqlCommand.CmdText=第二个sql语句
sqlCommand.ExcuteNoneQuert()
try
{
// 利用sqlcommand进行数据 *** 作
...
// 成功提交
sqlTransaction.Commit()
}
catch(Exception ex)
{
// 出错回滚
sqlTransaction.Rollback()
}
如果在执行第二次SQL语句是出错了,那么就会到Catch异常中,执行回滚,那么第一次执行的也同样回滚了,所以必须2个都一行成功才往数据库中提交
这里是用了2次SQL语句,如果你想用1个语句同时 *** 控2个表的话,就要用到存储过程或者是触发器,存储过程和触发器你如果想知道的话加QQ吧:312976625,我给你讲.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)