日期:2014-05-17  浏览次数:20407 次

OleDb读取Excel时, 如何使用sql条件查询
代码如下

//using System.Data;
//using System.Data.OleDb;



String file_name = "P:/test.xls";
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file_name + ";Extended Properties=Excel 8.0;";

OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);

OleDbDataAdapter obad = new OleDbDataAdapter();
obad.SelectCommand = objCmdSelect;
DataSet ds1 = new DataSet();
obad.Fill(ds1, "table1");
objConn.Close();

// 这里, 如何查询 第一列, 等于 tester 的数据
ds1.Tables[0].Select("A='tester'");

GridView1.DataSource = ds1;
GridView1.DataBind();





//test.xls 表格数据如下
//注明, 工号, 那列是第一行 , tester 第二行

工号     名称    基本工资    实发工资   合计
tester   test     11          222       333
tester2  test2    22          333       555

excel oledb

------解决方案--------------------
引用:
我想查询, excel里, A列(即工号) 等于  tester 的数据记录。。。

ds1.Tables[0].Select("[工号]='tester'");
------解决方案--------------------
要再转成DataTable

    private DataTable getDataTable(DataTable sdata, string cond)
    {
        DataTable dt = sdata.Clone();
        DataRow[] _data = sdata.Select(cond);
        foreach (DataRow row in _data)