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