Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопросы по работе с Excel, запрос к листу через переменную / 3 сообщений из 3, страница 1 из 1
18.05.2010, 10:45
    #36633495
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по работе с Excel, запрос к листу через переменную
Всем привет!!!!!
Народ уже 2 часа долбаюсь, и поиском пользовался и гуглом.
Что- то не получается.
Есть код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
string NowDate = System.DateTime.Now.ToString("dd.MM.yyyy") + "(+0)$";
            string DTomorowate = System.DateTime.Now.AddDays(1).ToString("dd.MM.yyyy") + "(+0)$";

            OleDbConnection objConn = null;
            System.Data.DataTable dt = null;
 
            String connString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + comboBoxInp2.Text + ";Extended Properties=Excel 8.0;"; 
            objConn = new OleDbConnection(connString);
            objConn.Open();
            dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

            String[] excelSheets = new String[dt.Rows.Count];
            int i = 0;
                        
            foreach (DataRow row in dt.Rows)
             {
              excelSheets[i] = row["TABLE_NAME"].ToString();
              i++;
             }

            OleDbCommand cm = null;
            cm = new OleDbCommand("select * from [" +NowDate+ "] ", objConn);
            OleDbDataAdapter da = new OleDbDataAdapter();

            da.SelectCommand = cm;
            DataTable _table = new DataTable();
            da.Fill(_table);
            da.Dispose();
            cm.Dispose();


            MessageBox.Show( Convert.ToString (_table.Rows.Count));

выдает такой эксепшн - Недопустимое имя: "18.05.2010[+0]$". Убедитесь, что оно не содержит недопустимые символы или знаки препинания, а также не является слишком длинным.
и указывает на da.Fill(_table);

мой cm.CommandText = "select * from [18.05.#2010(+0)$] "

если написать cm = new OleDbCommand("select * from [18.05.2010(+0)$] ", objConn);
то все нормально работает ((((
...
Рейтинг: 0 / 0
18.05.2010, 11:22
    #36633636
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по работе с Excel, запрос к листу через переменную
еще вопросик, запрос:

Код: plaintext
1.
cm = new OleDbCommand("select * from [11.05.2010 (+0)$] WHERE [Название передачи] Like '%Региональное окно%'", objConn);

на него эксепшн:
Отсутствует значение для одного или нескольких требуемых параметров.

попробовал через параметр

Код: plaintext
1.
2.
cm = new OleDbCommand("select * from [11.05.2010 (+0)$] WHERE [Название передачи] Like @name", objConn);
cm.Parameters.AddWithValue("@name", "Региональное окно%");

тот-же эксепшн (((

какой параметр??? Вроде же верный запрос...
...
Рейтинг: 0 / 0
19.05.2010, 22:58
    #36637974
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопросы по работе с Excel, запрос к листу через переменную
наконец-то, еще бы чуток и мозг сломал)))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
foreach (DataRow row in dt.Rows)
{
    excelSheets[i] = "[" + row["TABLE_NAME"].ToString() + "]" ;
    i++;
}

OleDbCommand cm = null;          
cm = new OleDbCommand();
cm.Connection = objConn;
cm.CommandText = @"SELECT * FROM " + excelSheets[0];     
OleDbDataAdapter da = new OleDbDataAdapter ();

da.SelectCommand = cm;

второй вопрос актуален))
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Вопросы по работе с Excel, запрос к листу через переменную / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]