演示如何从DataSet中获取LOB数据
2008-10-14 11:45
260 查看
演示如何从DataSet中获取LOB数据。
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace Sample11
{
/**//// <summary>
/// 演示如何从DataSet中获取LOB数据
/// </summary>
class Program
{
static void Main(string[] args)
{
// connect
string constr = "User Id=scott;Password=tiger;Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.24)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = bjoracle.oracle10g.mynet)))";
OracleConnection conn = Connect(constr);
// setup the table and data
Setup(conn);
// Create the oracleCommand
OracleCommand cmd = new OracleCommand("SELECT story FROM multimedia_tab");
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Create the OracleDataAdapter
OracleDataAdapter da = new OracleDataAdapter(cmd);
// Dataset
DataSet ds = new DataSet();
try
{
da.FillSchema(ds, SchemaType.Source, "Media");
// Fill data
da.Fill(ds, "Media");
// Obtain LOB data
Console.WriteLine(ds.Tables["Media"].Rows[0]["story"]);
}
catch (Exception ex)
{
Console.WriteLine("ERROR: {0}", ex.Message);
}
finally
{
// Dispose OracleCommand
cmd.Dispose();
// Close and Dispose OracleConnection object
conn.Close();
conn.Dispose();
}
Console.ReadLine();
}
/**//// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="connectStr"></param>
/// <returns></returns>
public static OracleConnection Connect(string connectStr)
{
OracleConnection conn = new OracleConnection(connectStr);
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
return conn;
}
/**//// <summary>
/// 创建必要的表和测试数据
/// </summary>
/// <param name="conn"></param>
public static void Setup(OracleConnection conn)
{
StringBuilder blr;
OracleCommand cmd = new OracleCommand("", conn);
blr = new StringBuilder();
blr.Append("DROP TABLE multimedia_tab");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
blr = new StringBuilder();
blr.Append("CREATE TABLE multimedia_tab(thekey NUMBER(4) PRIMARY KEY,");
blr.Append("story CLOB, sound BLOB)");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
blr = new StringBuilder();
blr.Append("INSERT INTO multimedia_tab values(");
blr.Append("1,");
blr.Append("'This is a long story. Once upon a time
',");
blr.Append("'65645444564113418787311578783121548787878')");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
}
}
}
在学习例子的过程中想到了如何利用 Oracle.DataAccess.Client.OracleConnection 连接远程服务器的服务,就像SQL Server一样指定IP,这里需要的只是将tnsnames.ora中的连接信息拷贝过来就可以了。
这里对 .NET 连接 oracle 数据库 做些总结:
1、ODBC
//New version
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
//Old version
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
2、OLE DB, OleDbConnection (.NET)
//Standard security This connection string uses a provider from Microsoft.
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
//Trusted connection
Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
//Standard Security This connection string uses a provider from Oracle.
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
//Trusted Connection
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
3、Oracle.DataAccess.Client.OracleConnection
//Standard
Data Source=TORCL;User Id=myUsername;Password=myPassword;
//Using integrated security
Data Source=TORCL;Integrated Security=SSPI;
//Using ODP.NET without tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
4、OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection
// Standard
Data Source=MyOracleDB;Integrated Security=yes;
// Specifying username and password
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
// Omiting tnsnames.ora
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
// Using Connection Pooling
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
// Windows Authentication
Data Source=myOracleDB;User Id=/;
// Privileged Connection With SYSDBA privileges
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSDBA;
// Privileged Connection With SYSOPER privileges
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
// Utilizing the Password Expiration functionality
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConn.OpenWithNewPassword(sTheNewPassword);
// Proxy Authentication
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;
5、Core Labs OraDirect (.NET)
// Standard
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
6、Data Shape
// MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
更多的信息请参见:http://www.connectionstrings.com/
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
namespace Sample11
{
/**//// <summary>
/// 演示如何从DataSet中获取LOB数据
/// </summary>
class Program
{
static void Main(string[] args)
{
// connect
string constr = "User Id=scott;Password=tiger;Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.24)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = bjoracle.oracle10g.mynet)))";
OracleConnection conn = Connect(constr);
// setup the table and data
Setup(conn);
// Create the oracleCommand
OracleCommand cmd = new OracleCommand("SELECT story FROM multimedia_tab");
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
// Create the OracleDataAdapter
OracleDataAdapter da = new OracleDataAdapter(cmd);
// Dataset
DataSet ds = new DataSet();
try
{
da.FillSchema(ds, SchemaType.Source, "Media");
// Fill data
da.Fill(ds, "Media");
// Obtain LOB data
Console.WriteLine(ds.Tables["Media"].Rows[0]["story"]);
}
catch (Exception ex)
{
Console.WriteLine("ERROR: {0}", ex.Message);
}
finally
{
// Dispose OracleCommand
cmd.Dispose();
// Close and Dispose OracleConnection object
conn.Close();
conn.Dispose();
}
Console.ReadLine();
}
/**//// <summary>
/// 打开数据库连接
/// </summary>
/// <param name="connectStr"></param>
/// <returns></returns>
public static OracleConnection Connect(string connectStr)
{
OracleConnection conn = new OracleConnection(connectStr);
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
return conn;
}
/**//// <summary>
/// 创建必要的表和测试数据
/// </summary>
/// <param name="conn"></param>
public static void Setup(OracleConnection conn)
{
StringBuilder blr;
OracleCommand cmd = new OracleCommand("", conn);
blr = new StringBuilder();
blr.Append("DROP TABLE multimedia_tab");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
blr = new StringBuilder();
blr.Append("CREATE TABLE multimedia_tab(thekey NUMBER(4) PRIMARY KEY,");
blr.Append("story CLOB, sound BLOB)");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
blr = new StringBuilder();
blr.Append("INSERT INTO multimedia_tab values(");
blr.Append("1,");
blr.Append("'This is a long story. Once upon a time
',");
blr.Append("'65645444564113418787311578783121548787878')");
cmd.CommandText = blr.ToString();
try
{
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
Console.WriteLine("Error: {0}", ex.Message);
}
}
}
}
在学习例子的过程中想到了如何利用 Oracle.DataAccess.Client.OracleConnection 连接远程服务器的服务,就像SQL Server一样指定IP,这里需要的只是将tnsnames.ora中的连接信息拷贝过来就可以了。
这里对 .NET 连接 oracle 数据库 做些总结:
1、ODBC
//New version
Driver={Microsoft ODBC for Oracle};Server=myServerAddress;Uid=myUsername;Pwd=myPassword;
//Old version
Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;
2、OLE DB, OleDbConnection (.NET)
//Standard security This connection string uses a provider from Microsoft.
Provider=msdaora;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
//Trusted connection
Provider=msdaora;Data Source=MyOracleDB;Persist Security Info=False;Integrated Security=Yes;
//Standard Security This connection string uses a provider from Oracle.
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;
//Trusted Connection
Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;
3、Oracle.DataAccess.Client.OracleConnection
//Standard
Data Source=TORCL;User Id=myUsername;Password=myPassword;
//Using integrated security
Data Source=TORCL;Integrated Security=SSPI;
//Using ODP.NET without tnsnames.ora
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
4、OracleConnection, Oracle Data Provider, ODP.NET, System.Data.OracleClient.OracleConnection
// Standard
Data Source=MyOracleDB;Integrated Security=yes;
// Specifying username and password
Data Source=MyOracleDB;User Id=myUsername;Password=myPassword;Integrated Security=no;
// Omiting tnsnames.ora
SERVER=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
// Using Connection Pooling
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Min Pool Size=10;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5;Decr Pool Size=2;
// Windows Authentication
Data Source=myOracleDB;User Id=/;
// Privileged Connection With SYSDBA privileges
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSDBA;
// Privileged Connection With SYSOPER privileges
Data Source=myOracleDB;User Id=SYS;Password=SYS;DBA Privilege=SYSOPER;
// Utilizing the Password Expiration functionality
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;
oConn.OpenWithNewPassword(sTheNewPassword);
// Proxy Authentication
Data Source=myOracleDB;User Id=myUsername;Password=myPassword;Proxy User Id=pUserId;Proxy Password=pPassword;
5、Core Labs OraDirect (.NET)
// Standard
User ID=myUsername;Password=myPassword;Host=ora;Pooling=true;Min Pool Size=0;Max Pool Size=100;Connection Lifetime=0;
6、Data Shape
// MS Data Shape
Provider=MSDataShape.1;Persist Security Info=False;Data Provider=MSDAORA;Data Source=orac;User Id=myUsername;Password=myPassword;
更多的信息请参见:http://www.connectionstrings.com/
相关文章推荐
- (原) ODP.NET 演示如何从DataSet中获取LOB数据 附:.NET 环境下连接Oracle数据库
- 如何获取DataSet数据表中某个字段值?
- (原) ODP.NET 演示以流的形式来获取 LOB 数据
- 微信企业号开发:获取数据权限错误如何处理
- 如何获取RowState为Deleted状态的数据
- 使用Oracle SQL Developer提示无法从套接字获取更多数据如何解决
- 请问在VB.NET 3.5中如何通过SqlDataSource 获取数据
- 如何抓取到Asp.Net中-doPostBack获取新页面的数据
- 如何使用DBMS_LOB从文件中加载CLOB数据
- AJAX获取数据成功后的返回数据如何声明成全局变量
- 再论百度Echarts技术,如何从后台获取数据并显示在页面上
- Vuforia SDK中如何获取每一帧图片byte数组数据
- Android Studio中如何获取sha1证书指纹数据debug.keystore
- insert语句后如何获取insert数据的主键值自动编号
- 网络获取数据如何显示到cell上
- C# 下面的代码示例演示如何结束异步操作以获取请求的流,然后开始一个请求以获取响应。....
- android-如何获取网络数据
- 本地动态SQL(Open for等)如何获取SQL的定义属性,包括栏位名称和数据类型
- 离线电子演示文档,如何调用通过js访问SFDC数据
- 设计时支持:如何获取环境数据