我是單位/自動測試一個大型應用程序,它使用MSFT Sql Server,Oracle和Sybase作爲其後端。也許有更好的方法來與db接口,但是ODBC庫是我必須使用的。鑑於這些限制,我需要弄清楚一些事情,並且我會很樂意爲您提供幫助。我的測試確實改變了數據庫的狀態,我尋求一種便宜的,99.99%的可靠方法來完成後的恢復工作(我覺得在每次測試過後都會有一次完整的數據庫恢復)。所以,我在下面尋找這個函數的補充 - 我需要一種方法來從DataSet填充表。如何使用C#將ODBC 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個供應商。
也許,謝謝。 ODBC API完全有可能具有我所需要的。我只是不能100%確定xml內容在哪裏。這可能是一種堅持事情的方式嗎?如果我要更改下面的行,數據集對象會發生什麼?也許我可以克隆一個?也許你是爲了合併的目的而這樣做的。這很好,但我需要的是在測試或測試套件完成後重置db的狀態。但是,我還想能夠計算兩個表之間的差異(用於測試比較邏輯)。希望這是有道理的。隨意問的問題。 – 2011-02-08 00:08:51