C# 用于连接到Oracle DB的Filehelpers数据链接
上面的示例连接到SQl serverC# 用于连接到Oracle DB的Filehelpers数据链接,c#,oracle,filehelpers,C#,Oracle,Filehelpers,上面的示例连接到SQl server 我的要求是连接到Oracle DB。我在filehelpers中找不到可用于连接到Oracle DB的类。如果你有任何想法,请帮忙。非常感谢。您可以使用GenericDatabaseStorage类,该类采用任何ADO.NETIDBConnection类型。以下是来自的示例 [TestClass] 公共类GenericDatabaseStorageTests { [测试方法] public void CurrencyOracleExtractToFile()
我的要求是连接到Oracle DB。我在filehelpers中找不到可用于连接到Oracle DB的类。如果你有任何想法,请帮忙。非常感谢。您可以使用
GenericDatabaseStorage
类,该类采用任何ADO.NETIDBConnection
类型。以下是来自的示例
[TestClass]
公共类GenericDatabaseStorageTests
{
[测试方法]
public void CurrencyOracleExtractToFile()
{
通用数据库存储=
新的通用数据库存储(
类型(测试记录),
“用户Id=SHELL;密码=SHELL;数据源=ora9dev”
);
storage.SelectSql=“选择*来自货币”;
storage.FillRecordCallback=新的FillRecordHandler(FillRecordOrder);
EasyExtractToFile(存储,“tempord.txt”);
FileDataLink=新的FileDataLink(存储);
link.extractofile(“tempord.txt”);
TestRecord[]res=(TestRecord[])CommonEngine.ReadFile(typeof(TestRecord),“tempord.txt”);
if(File.Exists(“tempord.txt”))
删除(“tempord.txt”);
断言长度相等(3,res.Length);
Assert.AreEqual(“AED”,res[0].CurrencyCode);
Assert.AreEqual(“AFA”,res[1].CurrencyCode);
Assert.AreEqual(“ALL”,res[2].CurrencyCode);
}
public void FillRecordOrder(对象记录,对象[]字段)
{
TestRecord记录=(TestRecord)记录;
record.CurrencyCode=(字符串)字段[0];
record.Name=(字符串)字段[1];
}
}
哦,太好了。非常感谢。是否有办法将相应的列名与数据一起放入文件中?您可以将engine.HeaderText
设置为。
[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 ];
}
}