Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法查询链接的服务器_C#_Sql_Oracle_Linked Server_Openquery - Fatal编程技术网

C# 无法查询链接的服务器

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

我无法使用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)

我的代码如下所示:

    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到连接字符串。