如何跳过该报错的sql语句,执行下一个sql语句

he_tego 2011-05-31 10:36:35
循环往sql server中添加值时
方法:
/// <param name="databaseName">数据库名</param>
/// <param name="ls">sql语句的集合</param>
public bool InsertData(string databaseName, List<string> ls)
{
string strCon1 = "Data Source=HEHANG-PC;Initial Catalog=" + databaseName + ";Persist Security Info=True;User ID=sa;Password=123456";
SqlConnection sqlcon = new SqlConnection(strCon1);
try
{
sqlcon.Open();
}
catch (Exception ex)
{
throw ex;
}

SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon;


try
{
foreach (string sql in ls)
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}

return true;
}
catch (Exception ex)
{
continue;
throw ex;
}
finally
{
sqlcon.Close();
}
}
当一条sql报错时,如何跳过该sql语句执行一条sql语句,并且保存报错的sql语句。
...全文
583 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
he_tego 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 caozhy 的回复:]

string errsql = "";
foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
errsql += sql……
[/Quote]
thanks,果然是人才
threenewbee 2011-05-31
  • 打赏
  • 举报
回复
string errsql = "";
foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
errsql += sql + "\r\n";
continue;
}
}
sqlcon.Close();
//errsql 就是全部错误的。
return true;
he_tego 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caozhy 的回复:]

C# code
foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
continue;
}
}
sqlcon.Close();
……
[/Quote]
主要就是如何将报错的SQL保存起来,
xuexiaodong2009 2011-05-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ranen2010 的回复:]

foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
continue;
}
}
sqlcon.Close(……
[/Quote]同意,改变try,catch 的位置就行了
小童 2011-05-31
  • 打赏
  • 举报
回复
foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
continue;
}
}
sqlcon.Close();
return true;
threenewbee 2011-05-31
  • 打赏
  • 举报
回复
foreach (string sql in ls)
{
try
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}
catch (Exception ex)
{
continue;
}
}
sqlcon.Close();
return true;
ringobob 2011-05-31
  • 打赏
  • 举报
回复

/// <param name="databaseName">数据库名</param>
/// <param name="ls">sql语句的集合</param>
public bool InsertData(string databaseName, List<string> ls)
{
string strCon1 = "Data Source=HEHANG-PC;Initial Catalog=" + databaseName + ";Persist Security Info=True;User ID=sa;Password=123456";
SqlConnection sqlcon = new SqlConnection(strCon1);
try
{
sqlcon.Open();
}
catch (Exception ex)
{
throw ex;
}

SqlCommand sqlcmd = new SqlCommand();
sqlcmd.Connection = sqlcon;


try
{
foreach (string sql in ls)
{
sqlcmd.CommandText = sql;
sqlcmd.ExecuteNonQuery();
}

return true;
}
catch (Exception ex)
{
//continue;
//此处添加一个function 执行另一条sql,并保存上面的sql语句
throw ex;
}
finally
{
sqlcon.Close();
}
}

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧