2011-09-21 45 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为完整的代码示例。 –