Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2016, 11:32   #1
Lord_Jesus_
Форумчанин
 
Регистрация: 23.09.2016
Сообщений: 169
По умолчанию импорт Excel в SqlCe

Сделал экспорт базы данных из ListView в Excel

Помогите пожалуйста разобраться как сделать импорт в sqlce.....искал нигде не удалось найти((
Lord_Jesus_ вне форума Ответить с цитированием
Старый 08.12.2016, 14:02   #2
dkfancska
 
Регистрация: 23.03.2014
Сообщений: 9
По умолчанию

Код:
public void ImportDataFromExcel(string excelFilePath) 
        { 
            //declare variables - edit these based on your particular situation 
            string ssqltable = "Table1"; 
            // make sure your sheet name is correct, here sheet name is sheet1, so you can change your sheet name if have    different 
            string myexceldataquery = "select student,rollno,course from [Sheet1$]"; 
            try 
            { 
                //create our connection strings 
                string sexcelconnectionstring = @"provider=microsoft.jet.oledb.4.0;data source=" + excelFilePath + 
                ";extended properties=" + "\"excel 8.0;hdr=yes;\""; 
                string ssqlconnectionstring = "Data Source=SAYYED;Initial Catalog=SyncDB;Integrated Security=True"; 
                //execute a query to erase any previous data from our destination table 
                string sclearsql = "delete from " + ssqltable; 
                SqlConnection sqlconn = new SqlConnection(ssqlconnectionstring); 
                SqlCommand sqlcmd = new SqlCommand(sclearsql, sqlconn); 
                sqlconn.Open(); 
                sqlcmd.ExecuteNonQuery(); 
                sqlconn.Close(); 
                //series of commands to bulk copy data from the excel file into our sql table 
                OleDbConnection oledbconn = new OleDbConnection(sexcelconnectionstring); 
                OleDbCommand oledbcmd = new OleDbCommand(myexceldataquery, oledbconn); 
                oledbconn.Open(); 
                OleDbDataReader dr = oledbcmd.ExecuteReader(); 
                SqlBulkCopy bulkcopy = new SqlBulkCopy(ssqlconnectionstring); 
                bulkcopy.DestinationTableName = ssqltable; 
                while (dr.Read()) 
                { 
                    bulkcopy.WriteToServer(dr); 
                } 
                dr.Close(); 
                oledbconn.Close(); 
                Label1.Text = "File imported into sql server."; 
            } 
            catch (Exception ex) 
            { 
                //handle exception 
            } 
        }

Последний раз редактировалось Alex11223; 08.12.2016 в 14:08.
dkfancska вне форума Ответить с цитированием
Старый 08.12.2016, 17:17   #3
Lord_Jesus_
Форумчанин
 
Регистрация: 23.09.2016
Сообщений: 169
По умолчанию

Нужна с базой sqlce
Событие на кнопке

OpenFileDialog ope = new OpenFileDialog();
ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";

Чтото вроде этого
Lord_Jesus_ вне форума Ответить с цитированием
Старый 10.12.2016, 02:01   #4
misha333
Заблокирован
 
Регистрация: 08.05.2016
Сообщений: 6
По умолчанию

У меня тоже не получилось,,,,
Сделал так,,,

Код:

OpenFileDialog ope = new OpenFileDialog();
            ope.Filter = "Excel Files|*.xls;*.xlsx;*.xlsm";
            if (ope.ShowDialog() == DialogResult.Cancel)
                return;
 
            string ssqltable = "contacts";
            // make sure your sheet name is correct, here sheet name is sheet1, so you can change your sheet name if have    different 
            string myexceldataquery = "select " + ope.FileName + " FROM  [sheet1$A1:D2]";
            try
            {
                //create our connection strings 
                string sexcelconnectionstring = @"provider=microsoft.jet.oledb.4.0;data source=" + ope.FileName +
                ";extended properties=" + ""excel 10.0;hdr=yes;"";
                string ssqlconnectionstring = "Data Source = 'contacts.sdf';";
                //execute a query to erase any previous data from our destination table 
                string sclearsql = "delete from " + ssqltable;
                SqlCeConnection sqlconn = new SqlCeConnection(ssqlconnectionstring);
                SqlCeCommand sqlcmd = new SqlCeCommand(sclearsql, sqlconn);
                sqlconn.Open();
                sqlcmd.ExecuteNonQuery();
                sqlconn.Close();
                //series of commands to bulk copy data from the excel file into our sql table 
                OleDbConnection oledbconn = new OleDbConnection(sexcelconnectionstring);
                OleDbCommand oledbcmd = new OleDbCommand(myexceldataquery, oledbconn);
                oledbconn.Open();
                OleDbDataReader dr = oledbcmd.ExecuteReader();
                SqlCeBulkCopy bulkcopy = new SqlCeBulkCopy(ssqlconnectionstring);
                bulkcopy.DestinationTableName = ssqltable;
                while (dr.Read())
                {
                    bulkcopy.WriteToServer(dr);
                }
                dr.Close();
                oledbconn.Close();
                label1.Text = "File imported into sql server.";
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex + "Файл не выбран!!!" + ope.FileName);
            }

Но выдает ошибку (((

string ssqltable = "contacts"; Название таблице в базе sqlce я правельно понял??
string myexceldataquery = "select " + ope.FileName + " FROM [sheet1$A1:D2]"; вот тут я думаю у меня ошибка, можете разъяснить эту строчку?

string sexcelconnectionstring = @"provider=microsoft.jet.oledb.4.0; data source=" + ope.FileName +
";extended properties=" + ""excel 10.0;hdr=yes;""; и вот тут тоже я не совсем понял как првельно сделать подключение ,,,у меня excel 2010,,,как правильно прописать???

Помогите пожалуйста
Дайте какой нибудь пример с объяснением чтобы я понял,,,,если вам не составит труда,,,,


Для отображении таблици использую list view

Может через него както можно???

datagridview не использую по этому он отподает

Помогите пожалуйста решить данную проблему(((
misha333 вне форума Ответить с цитированием
Старый 10.12.2016, 08:09   #5
misha333
Заблокирован
 
Регистрация: 08.05.2016
Сообщений: 6
По умолчанию

Люди добрые кто нибудь отзовитесь))) Нужна срочно ваша помощь))
misha333 вне форума Ответить с цитированием
Старый 10.12.2016, 15:03   #6
Lord_Jesus_
Форумчанин
 
Регистрация: 23.09.2016
Сообщений: 169
По умолчанию

incompatible database version. if this was a compatible file.run repair. For other cases refer to documentation.
[Db version = 4000000, Requested version = 3505053, File name = ...........sdf]

Если я правильно понимаю то он неможет подключится к базу sqlce ссылки у меня подключены, подключение вроде как тоже правельное,,,как можно теперь устронить это ошибку???
Lord_Jesus_ вне форума Ответить с цитированием
Старый 10.12.2016, 15:19   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

SQL CE и обычный SQL Server это разные вещи, там нет bulk copy.

Но непонятно зачем вам тот код вообще, просто читайте данные из экселя любым способом (библиотека типа https://closedxml.codeplex.com если только формат 2007+ или через ADO.NET как выше или Interop) и вставляйте в БД как обычно.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2016, 15:30   #8
Lord_Jesus_
Форумчанин
 
Регистрация: 23.09.2016
Сообщений: 169
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
SQL CE и обычный SQL Server это разные вещи, там нет bulk copy.
Alex11223 пожалуйста можете показать на примере я уже дня 4 с этим мучаюсь экспорт оказалась сделать легче во всяком случаи для меня
И в интернете практический нет никакой информации я не нашел,,,а если и находил чтото то не понимал... сможете дать какой нибудь пример с объяснением,,,буду вам очень благодарен,,

А что касаетсяSQL CE и обычный SQL Server это разные вещи, там нет bulk copy.
Да я знаю это разные базы,но на одном форуме ктото выложил библиотеку которая позваляет работать с SqlCeBulkCopy,,,хотя незнаю возможно то что выходит это ошибка это и связанно с этим
Lord_Jesus_ вне форума Ответить с цитированием
Старый 10.12.2016, 15:35   #9
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Lord_Jesus_ Посмотреть сообщение
в интернете практический нет никакой информации
Вы не то ищете, полно информации о работе с экселем.
Самый простой вариант — библиотека по ссылке выше.

Чтения из экселя и запись в БД это две разные задачи.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 10.12.2016, 15:46   #10
Lord_Jesus_
Форумчанин
 
Регистрация: 23.09.2016
Сообщений: 169
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Вы не то ищете, полно информации о работе с экселем.
Самый простой вариант — библиотека по ссылке выше.
С английским у меня плоховато(( можете в крации объяснить на русском?
Lord_Jesus_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт данных из Excel в Excel макросом vnmz Microsoft Office Excel 2 04.03.2011 18:04
Импорт из Excel в Access mortal2010 Microsoft Office Access 1 11.02.2011 16:38
Импорт из excel Djuleta86 Microsoft Office Access 6 12.09.2010 16:26