tags:

views:

45

answers:

2

Hi all;

my excel

|Name|Telephone|
|Color|Car|
|John|Jon|

i need "|John|Jon|" how to select OleDbCommand? third row start

My Csharp Not Work Code:

ExcelCommand.CommandText = @"SELECT * FROM " + SpreadSheetName + " Where RowNumber > 3";

Thank you...

A: 

May be instead "RowNumber > 3" use "RowNumber = 3". "|John|Jon|" - third row.

Anton
@Anton Not work Pls Help me ExcelCommand.CommandText = @"SELECT * FROM " + SpreadSheetName + " Where RowNumber = 3";
Oraclee
Error: No value given for one or more required parameters.
Oraclee
May be try such syntax: SELECT * FROM [+ "SpreadSheetName" + $A3:B3]Where $A3:B3 - cells range
Anton
@Anton your code is not work.
Oraclee
+1  A: 

This worked for me. You can change the SELECT statement as you wish (specific rows, multiple columns, ...) to get a single result or a set of rows returned.

string connectionString = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source=test.xls;";
connectionString += "Extended Properties=Excel 8.0;";
OleDbConnection con = new OleDbConnection(connectionString);

DataSet ds = new DataSet("stuff");

OleDbDataAdapter adapter = new OleDbDataAdapter();
// adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$A1:A100];", con);
// adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$];", con);
adapter.SelectCommand = new OleDbCommand("Select * from [Sheet1$] where [A] = 'John';", con);
adapter.Fill(ds);

foreach (DataRow dr in ds.Tables[0].Rows)
{
    foreach (DataColumn dc in ds.Tables[0].Columns)
    {
        Console.WriteLine(dr[dc].ToString());
    }
}
Edward Leno