我正在运行单元测试,当我尝试在数据库中插入数据并在之后立即获取它时,我什么也没得到(我尝试过使用DataAdapter
and DataReader
)。
但是,当我在插入和选择之间放置 3 秒睡眠(即使 1 秒也不起作用......)时,我得到了结果。
在 SQL Server Profiler 中,我可以看到执行情况,插入完成得很好,并且在选择开始前大约 10 毫秒完成。
我不知道这是哪里来的
代码如下所示:插入方法
SqlCommand command = new SqlCommand(sqlTemplate);
command.Parameters.Add(Sql4oConstants.Sql4oIdParameterName, SqlDbType.UniqueIdentifier).Value = id;
command.Parameters.Add(Sql4oConstants.Sql4oTimestampParamterName, SqlDbType.DateTime).Value = DateTime.Now;
command.CommandTimeout = dataSourceDescription.CommandTimeout;
DatabaseManager.ExecuteNonQuery(dataSourceDescription.ConnectionString, command);
获取方法
public static void Fill(string connectionString, DataTable table, SqlCommand command)
{
try
{
LogStorageWriter.WriteLogEntry(log, EStorageLevelLog.Debug, string.Format("Execute query: {0}", command.CommandText));
using (SqlConnection conn = new SqlConnection(connectionString))
{
command.Connection = conn;
using (SqlDataAdapter adapter = new SqlDataAdapter(command))
{
adapter.Fill(table);
}
}
}
catch (InvalidOperationException e)
{
LogStorageWriter.WriteLogEntry(log, EStorageLevelLog.Error, string.Format("Exception : {0}", e.ToString()));
}
}