从excel文件中检索标量

我需要使用从Excel表中获得的标量填充string的一部分: string myStr = myStr + excelResponce(myStr) ;
但是,myStr不断更新,不需要将请求数据或string放在列表中。
我试过(1)odbc适配器加载完整的Excel文件和数据行select()来检索标量和(2)odbc open-query-close方法。 两者都有效,但效率不高:前者必须在内存中加载资源有限的整个xls,后者不是用于标量,而是因为有一个数据集加载了单行数据。
如何连接到简单的结构数据? 如何以最有效的方式检索最小数据? 谢谢你们。

你应该使用ExecuteScalar方法,而不是其他任何东西,所以你将加载确切的标量,而不是一个数据集。

这里是我从Internet复制的一个例子,如果你已经在excel中创build了一个名为myRange1的范围,假设它只包含一个带有整数值的单元格,下面是如何得到它:

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