Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Запись из dataGridView в файл екселя

Ответить
Настройки темы
C/C++ - Запись из dataGridView в файл екселя

Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: Lawrence
Дата: 28-02-2012
Описание: Дополнение темы
Добрый день. Недавно начал учить C#, вот решил написать простенький телефонный справочник.
Все шло гладко, пока дело не дошло до сохранения в файл.

1) В чем собственно проблема:
При нажатии на кнопку, которая должна была записать все в файл 1.xls, выскакивает сообщение:
"Не совпадает число значений запроса и число результирующих полей."
И выделяет строку "cmd.ExecuteNonQuery();"

2) Еще раз через раз выскакивает ошибка, что якобы "Процесс не может получить доступ к файлу "1.xls", так как этот файл используется другим процессом."

Сам код:
Код: Выделить весь код
private void button5_Click(object sender, EventArgs e)          
{
string fileName = "1.xls"; // путь файла              
System.IO.File.Copy("1.xls", fileName, true); // копируем файл, шаблон файла должен лежать рядом с *.exe (1.xls)               
string connectionString = "provider=Microsoft.Jet.OLEDB.4.0;Data Source='" + fileName + "';Extended Properties=Excel 8.0;"; // строка подключения              
using (OleDbConnection ole = new OleDbConnection(connectionString)) // используем OleDb              
{                  
try                  
{                      
ole.Open();                      
for (int i = 0; i < dataGridView1.Rows.Count; i++)                      
{  
var cmd = new OleDbCommand("INSERT INTO [Лист1$] VALUES ('" + dataGridView1.Rows[0].Cells[0].Value + "','" + dataGridView1.Rows[0].Cells[1].Value + "','" + dataGridView1.Rows[0].Cells[2].Value + "',' ')", ole);                          
cmd.Connection = ole;                          
cmd.ExecuteNonQuery(); // вставляем данные в лист1 файла - filename                          
cmd.Dispose();                      
}                  
}                
  finally              
{                      
ole.Close();                 
}              
}
Мой dataGridView1 имеет в себе 3 колонки.
Строка для начала пока одна. Когда разберусь с сохранением одной строки, то тогда додумаю уже как записать и остальные.


3) Если не трудно, то подскажите, как мне из этого же файла заполнить dataGridView (обратная операция до вышеописанной).

Отправлено: 19:41, 28-02-2012

 

Новый участник


Сообщения: 21
Благодарности: 8

Профиль | Отправить PM | Цитировать


Я думаю запрос составлен не верно, так как ты пишешь в Лист , но не указываешь в какие ячейки вставлять три свой поля.

Отправлено: 21:39, 28-02-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


А как указать?

Отправлено: 21:53, 28-02-2012 | #3


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


http://forum.oszone.net/showthread.php?t=216811
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:02, 28-02-2012 | #4


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, но я с этой темы и начал разработку своей программы. А именно с кода, предоставленного пользователем LilLoco, который отписался в той теме.

А сам автор темы говорит подключить
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

Но у меня компилятор ругается при виде слова Office

Последний раз редактировалось Lawrence, 28-02-2012 в 23:13.


Отправлено: 22:57, 28-02-2012 | #5


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата Lawrence:
А сам автор темы говорит подключить
using Microsoft.Office.Interop;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
Но у меня компилятор ругается при виде слова Office »
чтобы это подключить надо в обозревателе решений правой кнопкой мыши и выбрать добавить ссылку
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:37, 28-02-2012 | #6


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ferget:
чтобы это подключить надо в обозревателе решений правой кнопкой мыши и выбрать добавить ссылку »
Ни в одной из вкладок нету ничего про Офис.

Последний раз редактировалось Lawrence, 29-02-2012 в 00:02.


Отправлено: 23:42, 28-02-2012 | #7


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


там окно с закладками, перейдите на закладку NET

и там выберите
Microsoft.Office.Interop.Excel;
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:59, 28-02-2012 | #8


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата ferget:
и там выберите
Microsoft.Office.Interop.Excel; »
Во вкладке .NET нету ничего про Офис.
Первая половина Microsoft.*


Вторая половина:

Последний раз редактировалось Lawrence, 29-02-2012 в 00:06.


Отправлено: 00:01, 29-02-2012 | #9


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


попробуйте так

http://msdn.microsoft.com/en-us/libr...=vs.80%29.aspx
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:18, 29-02-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Запись из dataGridView в файл екселя

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Определение IP и запись в файл aggressor_ Программирование и базы данных 53 19-02-2019 20:25
Assm - [решено] Запись в файл pogo Программирование и базы данных 7 24-11-2010 09:15
C/C++ - [решено] запись в файл Viruss Программирование и базы данных 3 05-08-2010 18:27
запись в файл на Perl koresaram Вебмастеру 3 16-03-2006 13:46
файл екселя на удаленном w2kServer fima Хочу все знать 3 21-01-2004 20:23




 
Переход