为了在 SQL Server 和 C# 之间进行交互,我使用了SqlCommand对象、参数和存储过程。
我的问题是我不知道,直到我执行它,如果它仍然与数据库同步。
例如,如果我有以下存储过程:
create procedure psSync
(
@Argument VARCHAR(50)
)
--do stuff
我将在我的代码中:
String myArgument="20131110"
SqlCommand sqlcmd = new SqlCommand { CommandType = CommandType.StoredProcedure, CommandText = "psSync"};
sqlCommand.Parameters.AddWithValue("@Argument", myArgument);
//execute sql command
这里的一切都很好。
但是如果我将我的过程更改为
create procedure psSync
(
--Desync!
@Argument Datetime
)
--do stuff
并且忘记将 myArgument 更改为 datetime,它会崩溃,而且我经常会太晚才注意到这个错误。
我首先尝试运行单元测试,使用开始事务和回滚在我的开发数据库中执行存储过程,但我不喜欢它:
- 需要很长时间
- 它可能在产品中错误地运行
- 它将数据库配置存储在测试 dll 中
所以我的问题是:
如何快速、高效、安全地测试 C# 代码和 SqlServer 代码(SqlCommand->Stored Procedure)之间的所有 sql 链接?