0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
1

При попытке открыть DBF файл через OpenFileDialog вылетает ошибка

31.05.2012, 16:34. Показов 5125. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
при попытке открыть DBF файл через OpenFileDialog вылетает ошибка
C#
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
private void открытьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //System.Windows.Forms.DataGrid ZipCode = null;
            
            DataGrid ZipCode = null;
            //System.IO.Stream MyStream = null;
            Stream MyStream = null;      
            openFileDialog1.InitialDirectory = "C:\\Baza";          
            openFileDialog1.Filter = "dbf files (*.dbf)|*.dbf";            
            openFileDialog1.FilterIndex = 2;           
            openFileDialog1.RestoreDirectory = true;
          
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            
            {
                try
                {
                    if ((MyStream = openFileDialog1.OpenFile()) != null)
                    
                    {//if
                        using (MyStream)
                        {//using
 
                            string fullPathname = openFileDialog1.FileName;                           
                            // Insert code to read the stream here.
                            string open_b = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\;Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";
                            OleDbConnection con=new OleDbConnection();
                            con.ConnectionString = open_b;
                            con.Open();
                            string vibor_t = "Select * From '" + fullPathname + "'";
                            OleDbDataAdapter DataAdapter = new OleDbDataAdapter(vibor_t,con);
                            DataSet DataSet = new DataSet();
                            DataAdapter.Fill(DataSet, fullPathname);                            
                            ZipCode.DataSource = DataSet.Tables[fullPathname].DefaultView;                        
                          
                        }//end using
                    }//end if
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка: Невозможно прочитать файл с диска: " + ex.Message);
                }
               
           }
           
       }
Миниатюры
При попытке открыть DBF файл через OpenFileDialog вылетает ошибка  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2012, 16:34
Ответы с готовыми решениями:

Ошибка при работе с dbf через OLEDB
Доброго времени суток. Возникла такая проблема: из таблицы записываю данные в файл dbf....

Ошибка при попытке открыть jar файл через консоль
При попытке открыть исполняемый jar файл через консоль возникает такая ошибка..В чем проблема?

Программа вылетает при попытке открыть файл
#include<iostream.h> #include<windows.h> #include<conio.h> #include<fstream.h> const int L=31;...

Проблема с базой данных. При попытке открыть вылетает 500-ая ошибка
Такая проблема: на серваке по адресу 'db/forum.mdb' лежит нужная мне база. ODBC источник создать...

33
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
31.05.2012, 22:31 2
Цитата Сообщение от kama3uk Посмотреть сообщение
string vibor_t = "Select * From '" + fullPathname + "'";
Так вы посмотрите что вы во FROM подставляете. Там должно быть имя таблицы, а вы подставляете имя БД
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
01.06.2012, 08:14 3
Вы должны указать папку, в которой находятся файлы как Data Source в строке подключения.
А у вас там почему-то написан диск C:\.

А уже только имя файла - как таблицу. Только не помню нужно обрезать расширения файла или нет...
Попробуйте так
C#
1
2
3
4
FileInfo fi = new FileInfo(fullPathname);
string open_b = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+fi.DirectoryName+";Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";
//...
string vibor_t = "Select * From '" + fi.Name + "'";
Если не получится - обрежьте расширение у имени файла.
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
01.06.2012, 09:34  [ТС] 4
вот сделал как вы написали
C#
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
DataGrid ZipCode = null;
            //System.IO.Stream MyStream = null;
            Stream MyStream = null;      
            openFileDialog1.InitialDirectory = "C:\\Baza";          
            openFileDialog1.Filter = "dbf файлы (*.dbf)|*.dbf";            
            openFileDialog1.FilterIndex = 0;           
            openFileDialog1.RestoreDirectory = true;
          
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            
            {
                try
                {
                    
                    if ((MyStream = openFileDialog1.OpenFile()) != null)
                    
                    {//if
                        using (MyStream)
                        {//using
 
                            string fullPathname = openFileDialog1.FileName;
 
                            FileInfo fi = new FileInfo(fullPathname);
                          
                            // Insert code to read the stream here.
 
                            string open_b = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fi.DirectoryName + ";Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";
                            
                            OleDbConnection con = new OleDbConnection();
 
                            con.ConnectionString = open_b;
 
                            con.Open();
 
                            string vibor_t = "Select * From '" + fi.Name + "'";
 
                            OleDbDataAdapter DataAdapter = new OleDbDataAdapter(vibor_t,con);
 
                            DataSet DataSet = new DataSet();
 
                            DataAdapter.Fill(DataSet, fullPathname);  
                          
                            ZipCode.DataSource = DataSet.Tables[fullPathname].DefaultView;  
                      
                          
                        }//end using
                    }//end if
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка: Невозможно прочитать файл с диска: " + ex.Message);
                }
               
           }
           
       }
все равно таже ошибка
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
01.06.2012, 10:28 5
Ошибка не может быть таже, так как мы передаем другое имя.
И читайте внимательней, я же написал, в случае неудачи - попробуйте обрезать расширение у имени файла Path.GetFileNameWithoutExtension.
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
01.06.2012, 12:22  [ТС] 6
че то я не понял как это привязать к моему коду!
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
01.06.2012, 12:24 7
Примитивное изменение в программе не можете сделать, а уже пытаетесь с БД работать...
C#
1
string vibor_t = "Select * From '" + Path.GetFileNameWithoutExtension(fi.Name) + "'";
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
01.06.2012, 14:57  [ТС] 8
Новая ошибка вылезла: Синтаксическая ошибка в запросе.Не полное предложение запроса.
C#
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 DataGrid ZipCode = null;
            //System.IO.Stream MyStream = null;
            Stream MyStream = null;      
            openFileDialog1.InitialDirectory = @"C:\Baza\";          
            openFileDialog1.Filter = "dbf файлы (*.dbf)|*.dbf";            
            openFileDialog1.FilterIndex = 2;           
            openFileDialog1.RestoreDirectory = true;
            openFileDialog1.FileName = null;
 
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            
            {
                try
                {
                    
                    if ((MyStream = openFileDialog1.OpenFile()) != null)
                    
                    {//if
                        using (MyStream)
                        {//using
 
                            string fullPathname = openFileDialog1.FileName;
 
                            FileInfo fi = new FileInfo(fullPathname);
                          
                            // Insert code to read the stream here.
 
                            string open_b = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fi.DirectoryName + ";Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";
                            
                            OleDbConnection con = new OleDbConnection();
                            
                            con.ConnectionString = open_b;
 
                            con.Open();
 
                            //string vibor_t = "Select * From '" + fi.Name + "'";
                            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            string vibor_t = "Select * From '" + Path.GetFileNameWithoutExtension(fi.Name) + "'";
                            //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                            OleDbDataAdapter DataAdapter = new OleDbDataAdapter(vibor_t,con);
 
                            DataSet DataSet = new DataSet();
 
                            DataAdapter.Fill(DataSet, fullPathname);  
                          
                            ZipCode.DataSource = DataSet.Tables[fullPathname].DefaultView;  
                      
                          
                        }//end using
                    }//end if
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Ошибка: Невозможно прочитать файл с диска: " + ex.Message);
                }
               
           }
           
       }
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 09:35  [ТС] 9
Помогите добить эту загагулину.
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
03.07.2012, 11:35 10
Возможно, имя таблицы(файла) в запросе нужно указывать без кавычек.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 11:55 11
в какой строке ошибка?
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 11:56  [ТС] 12
не без кавычек не катит
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 12:00 13
попробуйте указать имя таблицы без имени файла БД, если одно имя таблицы будете указывать, то кавычки не нужны.
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 12:16  [ТС] 14
Цитата Сообщение от to Посмотреть сообщение
попробуйте указать имя таблицы без имени файла БД, если одно имя таблицы будете указывать, то кавычки не нужны.
это в какой строчке кода поменять имя таблицы ???
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 12:20 15
там где вы делаете селект
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 12:33  [ТС] 16
помянять на это
C#
1
string vibor_t = "Select * From" + Path.GetFileName(fi.Name) + "'";
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 12:37 17
Цитата Сообщение от kama3uk Посмотреть сообщение
помянять на это
нет сделайте так
C#
1
string vibor_t = "Select * From TableName"
где From TableName - это имя существующей таблицы в вашей БД
0
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 12:55  [ТС] 18
Вот
C#
1
string vibor_t = "Select * From TableName" + Path.GetFileNameWithoutExtension(fi.Name) + "'";
и вот ошибка

"Объект TableName1 не найден ядром базы данных Microsoft Jet"
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 12:58 19
Цитата Сообщение от kama3uk Посмотреть сообщение
и вот ошибка
нет!!
вместо TableName подставте имя таблицы которая есть в БД.
и без этого
Цитата Сообщение от kama3uk Посмотреть сообщение
+ Path.GetFileNameWithoutExtension(fi.Name) +
0
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
03.07.2012, 13:07 20
Цитата Сообщение от to Посмотреть сообщение
нет!!
вместо TableName подставте имя таблицы которая есть в БД.
Файл dbf - это и есть одна таблица. И имя ее указывается как имя файла.
0
03.07.2012, 13:07
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.07.2012, 13:07
Помогаю со студенческими работами здесь

Ошибка при попытке открыть файл
файл не читает, выдает ошибку , ну типо "ошибка открытия" вот текст #include "stdafx.h"...

Ошибка при попытке открыть текстовый файл
При попытке открыть текстовый файл типа txt, выдает ошибку.

Ошибка при попытке открыть файл в видео-проигрывателе
Подскажите, пожалуйста, почему возникает эта ошибка при событии button3_Click (открыть файл)?...

Открыть файл через компонент OpenFileDialog
Нужно переделать код. Чтоб имя файла не вводить вручную, а нужно было выбрать через диалоговое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru