日期:2014-05-18  浏览次数:20435 次

100分!请问web程序出现异常如何继续执行?
我有上百个insert语句,点一个按钮发送

如果中间有一个insert不成功,可能是与数据库的字段类型不对应,比如是小数,我传的是abc,发生异常,如何才能不影响后面的语句执行?

用goto?


------解决方案--------------------
上百个insert语句,不是都写在页面上的吧
建议用数据库的存储过程,并用数据事务来处理!

------解决方案--------------------
你得循环遍历执行,才可以,

------解决方案--------------------
up
好像没有办法继续
------解决方案--------------------
不能强制执行吗
------解决方案--------------------
.net中有goto语句吗?
lz换一种方式写啊
------解决方案--------------------
try
{

}
catch
{
continue;
}
------解决方案--------------------
// Sample, SQL Server, C#,INNER-SQL

string connStr = "server=.;database=MyDb;uid=sa;pwd=654321 ";
SqlConnection conn = new SqlConnection(connStr);
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = CommandType.Text;
SqlTransaction trans = null;
using (conn) {
conn.Open();
using (trans = conn.BeginTransaction()) { // 开始事务
cmd.Transaction = trans;
string isql = null;
for (int i = 0; i < 100; i++) {
// 构造每个 isql
// ...
cmd.CommandText = isql;
try {
cmd.ExecuteNonQuery();
}
catch(SqlException ex) {
// 发生错误
// 最佳实践,应该写入日志,
// 继续执行
// ...
}
}
try {
trans.Commit(); // 提交事务
}
catch {
trans.Rollback();
throw; // 抛出异常,待顶层应用程序处理
}
}
}
------解决方案--------------------
在就放在FILLY里面继续执行被~ 然后在TYR 在CATCH 在FILLILY
------解决方案--------------------
可以通过纠错的方式
try
{}
catch
{}
------解决方案--------------------
可以进行判断,但是 比较的麻烦而且效率低,
建议最好是使用存储过程,通过事务进行插入。
------解决方案--------------------
只要try,catch,并且在catch中什么都不写就可以继续了。
不过,这有什么好处呢?
自己给自己找麻烦啊。
------解决方案--------------------
错误也执行???
------解决方案--------------------
把很多东西都交给 try catch 会影响性能的
个人认为 还是应该使用存储过程, 用事务来处理
------解决方案--------------------
数据库处理单独写个方法.
try catch 它就可以.