2012-07-05 15 views
0

通常,我们通过C#连接到Oracle数据库,然后通过C#执行查询。但是,我有一个Excel表格。在Excel表格中,在F单元格下,我在单元格中写入查询。我已经将这个单元格的值存储为strParam1。声明如下:通过读取excel单元执行查询

String strParam1 = Convert.ToString(xlRange.Cells[row, 6].Value); 

我希望我的程序读取该小区并执行任何查询,该小区即我希望我的代码来读取strParam1和执行查询下写成的。如何在这里使用excel表格获取和执行查询语句?

发布我的代码

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(); 
     } 
+2

也许所有我不明白这个问题,但是你不能只是做'command.CommandText = strParam1;'? –

+0

@ErenErsönmez在那个单元格中,我给我的查询从任务中选择*但是它会抛出一个异常“无效的字符” – user1501034

+0

当您在SO上提出问题时,请在发生错误时发布错误和堆栈跟踪。另外,如果你运行一个'SELECT','ExecuteNonQuery'就没用了。您应该使用['ExectuteReader'](http://msdn.microsoft.com/en-us/library/ab4kxd8h),以便您可以读取查询的结果。 –

回答

0

如果我明白你的问题,这似乎很简单,我想我不是,这是你想要做

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 = strParam1; 
      command.ExecuteNonQuery(); 
      command.Dispose(); 
     } 
+0

在Excel表格中,我给我的查询选择*从任务但它会抛出一个异常“无效的字符” – user1501034

+0

哪个字符 –

+0

我不知道...在那个单元格中,我输入了Select * from Task,但它会抛出dis异常...我也试过从任务中选择*;那么它也会抛出同样的异常 – user1501034

相关问题