C# 无法查询链接的服务器
我无法使用OpenQuery通过C#代码查询链接的Oracle服务器,但是我可以使用由4部分组成的名称或OpenQuery从Sql server本身查询服务器。使用代码时出现以下错误: System.Data.SqlClient.SqlException:链接服务器“LinkedServer”的OLE DB提供程序“OraOLEDB.Oracle”报告了错误。提供程序没有提供有关错误的任何信息。无法为链接服务器“LinkedServer”初始化OLE DB提供程序“OraOLEDB.Oracle”的数据源对象。位于System.Data.SqlClient.TdsParser.ThroweException的System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔断开连接)处,位于System.Data.SqlClient.TdsParser.Run的ThroweException和Warning(TdsParserStateObject stateObj)处位于System.Data.SqlClient.SqlDataReader.SqlDataReader.get_MetaData()的System.Data.SqlClient.SqlDataReader.ConsumerMetadata()处System.Data.SqlClient.SqlCommand.RunExecuteReaderDS(CommandBehavior cmdBehavior,RunBehavior RunBehavior,Boolean returnStream,Boolean async)中的(SqlDataReader ds,RunBehavior RunBehavior,String resetOptionsString)System.Data.SqlClient.SqlCommand.RunExecuteReader上的(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、String方法、DbAsyncResult结果)(CommandBehavior cmdBehavior、RunBehavior RunBehavior、Boolean returnStream、String方法)(CommandBehavior,String方法)位于System.Data.SqlClient.SqlCommand.ExecuteReader()的TerminateEmployeeForm.FormCode.FormEvents_加载(对象发送方,加载事件参数e) 我的代码如下所示:C# 无法查询链接的服务器,c#,sql,oracle,linked-server,openquery,C#,Sql,Oracle,Linked Server,Openquery,我无法使用OpenQuery通过C#代码查询链接的Oracle服务器,但是我可以使用由4部分组成的名称或OpenQuery从Sql server本身查询服务器。使用代码时出现以下错误: System.Data.SqlClient.SqlException:链接服务器“LinkedServer”的OLE DB提供程序“OraOLEDB.Oracle”报告了错误。提供程序没有提供有关错误的任何信息。无法为链接服务器“LinkedServer”初始化OLE DB提供程序“OraOLEDB.Oracle
testCommand = "SELECT * FROM OPENQUERY(LinkedServer,'SELECT * FROM HR.REGION')";
SqlCommand cmdTest = new SqlCommand();
cmdTest.Connection = conn1;
cmdTest.CommandText = testCommand;
cmdTest.CommandType = System.Data.CommandType.Text;
conn1.Open();
SqlDataReader testdr = cmdTest.ExecuteReader();
string values = null;
if (testdr.HasRows == true)
{
while (testdr.Read())
{
values = values + testdr["REGION_FIELD"].ToString();
}
}
原来这是一个权限问题。infopath表单无法访问数据库中的数据。我本以为SQL services服务帐户可以正常工作,但事实并非如此。相反,我创建了一个SQL登录名,然后授予它对连接字符串中指定的SQL数据库的权限,并添加用户名和密码d到连接字符串。