Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.85/20: Рейтинг темы: голосов - 20, средняя оценка - 4.85
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
1

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

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

при попытке открыть 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);
                }
               
           }
           
       }
0
Миниатюры
При попытке открыть DBF файл через OpenFileDialog вылетает ошибка  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
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 источник создать...

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

33
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
31.05.2012, 22:31 2
Цитата Сообщение от kama3uk Посмотреть сообщение
string vibor_t = "Select * From '" + fullPathname + "'";
Так вы посмотрите что вы во FROM подставляете. Там должно быть имя таблицы, а вы подставляете имя БД
0
turbanoff
Эксперт Java
4050 / 3785 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
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
kama3uk
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
01.06.2012, 09:34
turbanoff
Эксперт Java
4050 / 3785 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
01.06.2012, 10:28 5
Ошибка не может быть таже, так как мы передаем другое имя.
И читайте внимательней, я же написал, в случае неудачи - попробуйте обрезать расширение у имени файла Path.GetFileNameWithoutExtension.
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
01.06.2012, 12:22  [ТС] 6
че то я не понял как это привязать к моему коду!
0
turbanoff
Эксперт Java
4050 / 3785 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
01.06.2012, 12:24 7
Примитивное изменение в программе не можете сделать, а уже пытаетесь с БД работать...
C#
1
string vibor_t = "Select * From '" + Path.GetFileNameWithoutExtension(fi.Name) + "'";
0
kama3uk
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
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 09:35  [ТС] 9
Помогите добить эту загагулину.
0
turbanoff
Эксперт Java
4050 / 3785 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
03.07.2012, 11:35 10
Возможно, имя таблицы(файла) в запросе нужно указывать без кавычек.
0
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 11:55 11
в какой строке ошибка?
0
kama3uk
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
kama3uk
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
kama3uk
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
kama3uk
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
turbanoff
Эксперт Java
4050 / 3785 / 743
Регистрация: 18.05.2010
Сообщений: 9,330
Записей в блоге: 11
Завершенные тесты: 1
03.07.2012, 13:07 20
Цитата Сообщение от to Посмотреть сообщение
нет!!
вместо TableName подставте имя таблицы которая есть в БД.
Файл dbf - это и есть одна таблица. И имя ее указывается как имя файла.
0
03.07.2012, 13:07
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.07.2012, 13:07

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.