2011-09-21 81 views
2

我需要使用從Excel工作表獲得的標量填充字符串的一部分:string myStr = myStr + excelResponce(myStr) ;
但是,myStr不斷更新,並且不需要將請求數據或字符串放在列表中。
我試過(1)odbc適配器加載完整的excel文件和數據行select()來檢索標量和(2)odbc open-query-close方法。兩者都可以工作,但看起來效率不高:前者必須在內存中加載資源限制的整個xls,後者不適用於標量,並且遭受加載單行數據的數據集。
如何連接到簡單的結構數據?如何以最有效的方式檢索最小數據?謝謝你們。從excel文件中檢索標量

回答

2

您應該使用ExecuteScalar方法,而不是其他任何方法,因此您將加載確切的標量而不是數據集。

這裏一個例子,我只是從網上覆制的,如果你已經創建了一個名爲myRange1在Excel範圍,假設只包含1的整數值小區,這裏是如何得到它:

using System; 
using System.Windows.Forms; 
using System.Data.OleDb; 

namespace WindowsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      string filename = "filename.xls"; 
      string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + @";Extended Properties=""Excel 8.0;HDR=1;IMEX=1"""; 

      string sql = "SELECT * FROM myRange1"; 

      using(var conn = new OleDbConnection(connString); 
      using(var cmd = new OleDbCommand(sql, conn); 
      { 
       conn.Open(); 

       Int32 myReturnScalar = Convert.ToInt32(cmd.ExecuteScalar()); 
      } 
     } 
    } 
} 
+0

+ 1爲完整的代碼示例。 –