我正在对一个使用 MSFT Sql Server、Oracle 和 Sybase 作为后端的大型应用程序进行单元/自动测试。也许有更好的方法来与数据库交互,但我必须使用 ODBC 库。鉴于这些限制,我需要弄清楚一些事情,我希望您能在这方面提供帮助。我的测试确实改变了数据库的状态,我寻求一种廉价的、99.99% 可靠的方法来在我完成后恢复(我觉得每次测试后进行完整的数据库恢复是太多的惩罚)。因此,我在下面寻求对这个函数的补充——我需要一种从 DataSet 填充表的方法。
private DataSet ReadFromTable(ODBCConnection connection, string tableName)
{
string selectQueryString = String.Format("select * from {0};", tableName);
DataSet dataSet = new DataSet();
using (OdbcCommand command = new OdbcCommand(selectQueryString, connection))
using (OdbcDataAdapter odbcAdapter = new OdbcDataAdapter(command))
{
odbcAdapter.Fill(dataSet);
}
return dataSet;
}
// The method that I seek.
private void WriteToTable(ODBCConnection connection, string tableName, DataSet data)
{
...
}
我意识到事情可能更复杂 - 有触发器,一些表依赖于其他表。但是,为了提高被测应用程序的效率,我们几乎不使用任何约束。我给你这个信息,所以也许你有一个关于如何更好/不同地做事的建议。我对不同的方法持开放态度,只要它们运作良好。
不可协商的是:MsTest
库VS2010
、、、C#
ODBC 库,支持所有 3 个供应商。