C# 从oracle数据库获取数据

C# 从oracle数据库获取数据,c#,.net,sql,oracle,C#,.net,Sql,Oracle,我使用下面的代码连接到我的oracle数据库并执行查询。我在示例中使用的查询只是从表中获取一组行。但是,我不断收到一条错误消息,“表或视图不存在”。但是,我非常确定该表存在于数据库中。我哪里做错了 public void UpdateDatabase() { System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();

我使用下面的代码连接到我的oracle数据库并执行查询。我在示例中使用的查询只是从表中获取一组行。但是,我不断收到一条错误消息,“表或视图不存在”。但是,我非常确定该表存在于数据库中。我哪里做错了

 public void UpdateDatabase()
        {
            System.Data.OracleClient.OracleConnection conn = new System.Data.OracleClient.OracleConnection();
            conn.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.144)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));UID=mwm;PWD=mwm";
            conn.Open();
            OracleCommand command = conn.CreateCommand();
            command.CommandText = "Select * from Task"; 
            command.ExecuteNonQuery();
            command.Dispose();
        }
到达command.ExecuteOnQuery()时会触发此错误

任务是oracle,这就是为什么会出现此错误。使用双引号

command.CommandText = "Select * from \"Task\"";
ExecuteNonQuery可能不会给您任何错误,但不会给您所需的结果。你需要这样做。请参阅链接


您也可以看到这一点

我认为问题出在
命令上

实际上,您正在这里执行一个查询,因此应该使用或


您的连接字符串正确吗?您是否连接到正确的数据库?@Habib.OSU ya连接字符串正确。否则,我会在连接字符串本身中出错,我的朋友……还有,我正在连接到正确的数据库。权限呢?用户mwm是否具有使用该表的权限?或者,
Task
是Oracle中的保留字(对此不确定)。您是否使用SQL Navigator、PL/SQL Developer或类似的查询工具连接到数据库(作为测试用户)并运行查询?@user1501034检查我的更新答案。您确定吗???我已将查询作为字符串传递..它不会将其作为字符串吗???或者它只是一个保留词吗???根据Asif的回答,我注意到还有一件事,为什么要使用ExecuteOnQuery,它用于插入、更新或删除语句,而不是用于select@user1501034,它将把它作为一个字符串,这就是为什么您需要从“任务”发送
Select*
@Habib如果我使用ExecuteQuery,我会收到一个错误“'System.Data.OracleClient.OracleCommand'不包含'ExecuteQuery'的定义,并且找不到接受'System.Data.OracleClient.OracleCommand'类型的第一个参数的扩展方法'ExecuteQuery'(是否缺少using指令或程序集引用?)“@user1501034,我的坏,与SQL Server混淆,它的执行者,检查更新的答案和链接,因为它不工作
SqlDataAdapter
与Oracle不兼容。它只适用于SQLSERVER。
public void UpdateDatabase()
{
   System.Data.OracleClient.OracleConnection conn = new    System.Data.OracleClient.OracleConnection();
  conn.ConnectionString = "Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.144)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));UID=mwm;PWD=mwm";
     conn.Open();
     OracleCommand command = conn.CreateCommand();            
     SqlDataAdapter a = new SqlDataAdapter("Select * from \"Task\"", command))            
     DataTable t = new DataTable();
     a.Fill(t);
     command.Dispose();
}