SqlConnection 命令在删除时不会引发异常

本文关键字:异常 命令 删除 SqlConnection | 更新日期: 2023-09-27 18:31:22

我正在研究单元测试,我做了一个测试以下方法的测试:

public void DeleteTransport(int id)

   {
       SqlConnection sqlConnection = new SqlConnection(SQL_CONN);
       try
       {
           sqlConnection.Open();
           SqlCommand dbCommand = sqlConnection.CreateCommand();
           dbCommand.CommandText = string.Format("DELETE FROM dbo.Transports WHERE ID={0}", id);
           SqlDataAdapter dap = new SqlDataAdapter(dbCommand);
           var ds = new DataSet("Transports");
           dap.Fill(ds);
       }
       finally
       {
           sqlConnection.Close();
       }
   }

在单元测试中,我给出一个不存在的 id 作为参数,但该方法不会引发 SqlException。

如果 id 不存在,如何抛出异常?

我正在使用:

  • Visual Studio 2012
  • TFS
  • SQL Server 2008

SqlConnection 命令在删除时不会引发异常

这不会引发异常,它只会更新 0 行。

您可以使用 ExecuteNonQuery() 检查影响了多少行,如果它们等于 0,您可以抛出异常(这将在计算上是昂贵的),但会达到您的预期。

还可以将单元测试重写为 Assert 受影响的行大于 0。