Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel and C# and OleDb / 1 сообщений из 1, страница 1 из 1
14.12.2007, 16:41:00
    #35011215
Architect
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel and C# and OleDb
Здрасвуйте!

Работаю с Excel файлом как с базой. Подключаюсь с помощью OleDbConnection(параметры).

Мне требуется перед тем как занести запись в таблицу проверить существует ли уже запись с таким номером(ну неважно номер или нет, с таким соджержанием). Алгоритм такой :

1. Подключаюсь....
2. Выполняю запрос SELECT * FROM [Лист1$] WHERE No=' TextBox6.Text '
3. Получив и на базе того есть ли ткие записи говорю, что добавить нелья..

Мой код :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + WorkDir + "Реестр.xls" + ";Extended Properties=\"Excel 8.0;HDR=Yes;\"");
                connection.Open();

                OleDbCommand comd = new OleDbCommand("SELECT * FROM [Лист1$] WHERE (No='" + TextBox6.Text + "')", connection);               
                if (comd.ExecuteNonQuery() > 0)
                {
                    ErrLabel.Text = "Документ с указанным номером существует";
                    flag = false;
                }
                else
                {
                    OleDbCommand command = new OleDbCommand("INSERT INTO [Лист1$] VALUES ('" + TextBox6.Text + "','" + Date + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox7.Text + "');", connection);
                    command.ExecuteNonQuery();   
                }


Не работает :(

Говорит что нет записей с указанным значением в поле No.(т.е. comd.ExecuteNonQuery==0).

Пробывал и так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + WorkDir + "Реестр.xls" + ";Extended Properties=\"Excel  8 . 0 ;HDR=Yes;\"");
                connection.Open();

                OleDbDataAdapter comd = new OleDbDataAdapter("SELECT * FROM [Лист1$] WHERE (No='" + TextBox6.Text + "')", connection);
                DataSet dataset = new DataSet();
                comd.Fill(dataset);
                if (dataset.Tables[ 0 ].Rows.Count >  0 )
                {
                    ErrLabel.Text = "Документ с указанным номером существует";
                    flag = false;
                }
                else
                {
                    OleDbCommand command = new OleDbCommand("INSERT INTO [Лист1$] VALUES ('" + TextBox6.Text + "','" + Date + "','" + TextBox2.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox7.Text + "');", connection);
                    command.ExecuteNonQuery();   
                }

Во время трассировки после comd.Fill(dataset) : dataset.Tables[0].Rows.Count = 0

Ребят, подскажите как реализовать?

П. С. Получается так, что программа не обрабатывает параметры.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel and C# and OleDb / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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