我看楼主要是对Romoting不是很了解的话,还是用ODBC把,如果ODBC都不会配,那我佩服你了下面有一些Oracle的连接方式Oracle ODBC New version: "Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;" Old version: "Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;" OLEDB, OleDbConnection (.NET) Standard security: "Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;" This one's from Microsoft, the following are from Oracle Standard Security: "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;" Trusted Connection: "Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;" OracleConnection (.NET) Standard: "Data Source=Oracle8i;Integrated Security=yes"; This one works only with Oracle 8i release 3 or later Declare the OracleConnection:C#: using System.Data.OracleClient; OracleConnection oOracleConn = new OracleConnection(); oOracleConn.ConnectionString = "my connectionstring"; oOracleConn.Open(); VB.NET: Imports System.Data.OracleClient Dim oOracleConn As OracleConnection = New OracleConnection() oOracleConn.ConnectionString = "my connectionstring" oOracleConn.Open()
不象sql server,ms已经集成了。
不过...你的问题和Remoting有什么关系?
的键值。试几次,应该可以的。
但需要在作为Remoting Host的那台服务器上需要安装oracle client.
如果不需要经过防火墙,最好用Remoting,速度,性能都比Web Service要好.
其实你不如单独做一个class封装与数据库的连接。然后每次返回Dataset等等。这样可以比较方便。或者你就把microsoft的SQLHelper改一下,假定为OracleHelper,把所有static去掉。然后发布那个对象就可以了。
或者再进一步,把SQLHelp每个函数的ConnectString 记录成OracleHelper的属性。在使用前初始化。其他函数只是把static,把connectionstring(或者是一个OracleConnect)改成使用域就可以了MSN:[email protected]
ODBC
New version:
"Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=Username;Pwd=asdasd;"
Old version:
"Driver={Microsoft ODBC Driver for Oracle};ConnectString=OracleServer.world;Uid=myUsername;Pwd=myPassword;"
OLEDB, OleDbConnection (.NET)
Standard security:
"Provider=msdaora;Data Source=MyOracleDB;User Id=UserName;Password=asdasd;"
This one's from Microsoft, the following are from Oracle
Standard Security:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=Username;Password=asdasd;"
Trusted Connection:
"Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;OSAuthent=1;"
OracleConnection (.NET)
Standard:
"Data Source=Oracle8i;Integrated Security=yes";
This one works only with Oracle 8i release 3 or later
Declare the OracleConnection:C#:
using System.Data.OracleClient;
OracleConnection oOracleConn = new OracleConnection();
oOracleConn.ConnectionString = "my connectionstring";
oOracleConn.Open(); VB.NET:
Imports System.Data.OracleClient
Dim oOracleConn As OracleConnection = New OracleConnection()
oOracleConn.ConnectionString = "my connectionstring"
oOracleConn.Open()
===================================================================我原来用过bcb,好象没注意这个odac控件,再说oracle client有几十M,这个控件能行吗?
TcpChannel chan;
chan = new TcpChannel(8089);
ChannelServices.RegisterChannel(chan);
RemotingConfiguration.RegisterWellKnownServiceType( typeof(System.Data.OracleClient.OracleConnection), "SayHello", WellKnownObjectMode.SingleCall);客户端:
System.Data.OracleClient.OracleConnection obj = (System.Data.OracleClient.OracleConnection)Activator.GetObject(typeof(System.Data.OracleClient.OracleConnection), "tcp://localhost:8089/SayHello");
try
{
obj.ConnectionString = "user id=scott;data source=DEV;password=tiger";
string strSql = "select * from tab";
System.Data.OracleClient.OracleDataAdapter oda = new System.Data.OracleClient.OracleDataAdapter( strSql, obj );
System.Data.DataSet ds = new DataSet();
oda.Fill( ds );
dataGrid1.DataSource = ds;
}
catch( System.Exception ee )
{
MessageBox.Show( ee.Message );
}输出错误提示:The ConnectionString property has not been initialized.如何解?
ODAC是一个第三方控件 http://www.crlab.com/
该公司有一个类似与System.Data.OracleClient的.Net组件,但只能通过OCI访问
是运行到这句出错吗?
到: oda.Fill( ds );
obj.ConnectionString = "user id=scott;data source=DEV;password=tiger";没出错,但似乎没有效果
它是掉用一次创建一次,obj.ConnectionString = "user id=scott;data source=DEV;password=tiger";完了后它会释放了,
System.Data.OracleClient.OracleDataAdapter( strSql, obj );
obj.ConnectionString 这时是一个空值了。
改为RemotingConfiguration.RegisterWellKnownServiceType( typeof(System.Data.OracleClient.OracleConnection), "SayHello", WellKnownObjectMode.Singleton);试下。
>这个是不是也可以直接访问Oracle数据库呢别提这个了。我用过他针对pg的数据库类。结果,免费版的一次查询最多只能够返回六列。
WellKnownObjectMode.SingleCall改为WellKnownObjectMode.Singleton
错误提示如下
权限被拒绝: 无法远程调用非公共或静态方法。
想来应该是 junqiang(笨笨) 说的问题genuinekl(genuinekl) :
该组件类似与System.Data.OracleClient,目前只能通过OCI访问,而且在我简单的测试中都出Bug