3
http://filehelpers.sourceforge.net/example_sqlstorage_extract.htmlFilehelpers數據鏈路連接到Oracle DB
上面的例子連接到SQL Server。
我的要求是連接到Oracle DB.I沒有發現我可以用來連接到Oracle DB的文件保護程序的類。如果您有任何想法請幫助。非常感謝。
http://filehelpers.sourceforge.net/example_sqlstorage_extract.htmlFilehelpers數據鏈路連接到Oracle DB
上面的例子連接到SQL Server。
我的要求是連接到Oracle DB.I沒有發現我可以用來連接到Oracle DB的文件保護程序的類。如果您有任何想法請幫助。非常感謝。
您可以使用GenericDatabaseStorage<T>
類,該類可以使用任何ADO.NET IDBConnection
類型。以下是FileHelpers source的示例。
[TestClass]
public class GenericDatabaseStorageTests
{
[TestMethod]
public void CurrencyOracleExtractToFile()
{
GenericDatabaseStorage<OracleConnection, OracleCommand> storage =
new GenericDatabaseStorage<OracleConnection, OracleCommand>(
typeof(TestRecord),
"User Id=SHELL;Password=shell;Data Source=ora9dev"
);
storage.SelectSql = "SELECT * FROM CURRENCY";
storage.FillRecordCallback = new FillRecordHandler(FillRecordOrder);
FileDataLink.EasyExtractToFile(storage, "tempord.txt");
FileDataLink link = new FileDataLink(storage);
link.ExtractToFile("tempord.txt");
TestRecord[] res = (TestRecord[])CommonEngine.ReadFile(typeof(TestRecord), "tempord.txt");
if (File.Exists("tempord.txt"))
File.Delete("tempord.txt");
Assert.AreEqual(3, res.Length);
Assert.AreEqual("AED", res[ 0 ].CurrencyCode);
Assert.AreEqual("AFA", res[ 1 ].CurrencyCode);
Assert.AreEqual("ALL", res[ 2 ].CurrencyCode);
}
public void FillRecordOrder(object rec, object[ ] fields)
{
TestRecord record = (TestRecord)rec;
record.CurrencyCode = (string)fields[ 0 ];
record.Name = (string)fields[ 1 ];
}
}
哦,這是偉大的。感謝很多。有沒有辦法將相應的列名也與數據一起到文件..? – user1046415 2012-07-31 13:29:24
您可以將'engine.HeaderText'設置爲[在其他地方回答](http://stackoverflow.com/a/8258420/1077279)。 – shamp00 2012-07-31 15:10:26