【问题标题】:Retrieving scalar from excel file从excel文件中检索标量
【发布时间】:2011-09-21 11:24:43
【问题描述】:

我需要使用从 excel 表中获得的标量填充字符串的一部分:string myStr = myStr + excelResponce(myStr) ;
但是 myStr 会不断更新,无需将请求数据或字符串放入列表中。
我尝试 (1)odbc 适配器加载完整的 excel 文件和数据行 select() 以检索标量和 (2) odbc open-query-close 方法。两者都有效,但看起来效率低下:前者必须将整个 xls 加载到内存中,但有资源限制,后者不适用于标量,并且它会因数据集加载单行数据而受到影响。
如何连接到简单的结构数据?如何以最有效的方式检索最少的数据?谢谢大家。

【问题讨论】:

    标签: c# excel odbc


    【解决方案1】:

    您应该使用ExecuteScalar 方法,而不是其他任何方法,因此您将加载精确的标量而不是数据集。

    这是我刚刚从网上复制的一个例子,如果你在excel中创建了一个名为myRange1的范围,假设只包含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());
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      相关资源
      最近更新 更多