Форум программистов, компьютерный форум, киберфорум
Наши страницы
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. Просмотров 3628. Ответов 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 вылетает ошибка  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 16:34
Ответы с готовыми решениями:

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

Как открыть файл расширения "exe" используя OpenFileDialog
Как открыть файл расширения "exe" используя OpenFileDialog ? Чтобы при...

Ошибка "Файл базы данных занят" при попытке подключения к ней
работаю с бд через шарп . C:\Temp\Паспорт.fdb" в этой директории потом папку...

При попытке заполнения таблиц через сторонний менеджер баз выскакивает ошибка "foreign key mismatch"
private const string path = @"C:\klient.db3"; private static...

Креш при попытке добавить подключение через обозреватель серверов
хостинг somee.com при попытке добавить подключение через обозреватель серверов...

33
to
19 / 19 / 2
Регистрация: 28.10.2010
Сообщений: 296
03.07.2012, 13:09 21
Цитата Сообщение от turbanoff Посмотреть сообщение
Вы не работали с foxpro базами?
а, нет не работал
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
03.07.2012, 13:53  [ТС] 22
чето не понял я .

Добавлено через 2 минуты
никогда не сталкивался с dbf

Добавлено через 38 минут
если просто открыть dbf то все работает нормально а через openfiledialiog не фурыжит
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
try                
            {
                // Создаем подключение к DBF файлу
 
            string open_base = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\;Extended Properties=dBase 5.0; Mode=Read|Write|Share Deny None;Persist Security Info=True";
            
                //string open_base = "provider=Microsoft.Jet.OLEDB.4.0;data source=" + System.IO.Path.Combine(Application.StartupPath, "DBF.dbf");
            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = open_base;
            con.Open();
                // На данном этапе происходит открытие файла
            string vibor_table = "Select * from DBF";  // Выбрать все поля
             
            OleDbDataAdapter adapter = new OleDbDataAdapter(vibor_table,con); //Заполняем DataSet
            DataSet ds = new DataSet(); // Заносим данные в КЕШ
            adapter.Fill(ds);
            con.Close(); // Закрытие потока данных
            this.dataGridView1.DataSource = ds.Tables[0]; //Объявление DGV
            }
            catch(OleDbException exp)
            {
                MessageBox.Show("Error: " + exp.Message);               
            }
        }
0
nio
5966 / 3372 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
04.07.2012, 14:43 23
C#
1
2
3
4
5
if ((MyStream = openFileDialog1.OpenFile()) != null)
                    
                    {//if
                        using (MyStream)
                        {//using
а зачем тут поток?
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
06.07.2012, 10:38  [ТС] 24
по примеру делал для себя! вот и в сунул поток!

Добавлено через 1 час 49 минут
C#
1
2
fullPathname=C:\\Baza\\1.dbf
fi.=C:\Baza\1.dbf
может в етом касяк??

Добавлено через 15 секунд
C#
1
2
fullPathname=C:\\Baza\\1.dbf
fi.=C:\Baza\1.dbf
может в етом касяк??
0
nio
5966 / 3372 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
06.07.2012, 11:38 25
Цитата Сообщение от kama3uk Посмотреть сообщение
по примеру делал для себя! вот и в сунул поток!
а ты попробуй не совать
Цитата Сообщение от kama3uk Посмотреть сообщение
может в етом касяк??
OpenFileDialog вернет имя в правильном формате
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
07.07.2012, 11:21  [ТС] 26
уже и так сделал. все равно таже фигня
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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;
Добавлено через 22 часа 34 минуты
C#
1
2
3
4
5
                             OleDbDataAdapter adapter = new OleDbDataAdapter(vibor_t, con);                 
                            DataSet DataSet = new DataSet();
                            adapter.Fill(DataSet);   // На етой строчке вылетает ошибка 
                            con.Close();
                            this.dataGridView1.DataSource = DataSet.Tables[0];
0
nio
5966 / 3372 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.07.2012, 11:27 27
kama3uk, попробуй для начала прописать в строку подключения путь константой
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
07.07.2012, 11:33  [ТС] 28
это будет проблемно.я токо начал изучать С#
0
nio
5966 / 3372 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.07.2012, 11:58 29
Цитата Сообщение от kama3uk Посмотреть сообщение
это будет проблемно.я токо начал изучать С#

C#
1
string open_b = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Baza;Extended Properties=dBase 5.0;Mode=Read|Write|Share Deny None;Persist Security Info=True";

Не по теме:

Если ты только начинаешь, может рановато ещё за БД браться?



Добавлено через 40 секунд
и посмотри примеры тут http://connectionstrings.com/dbf-foxpro
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
07.07.2012, 12:58  [ТС] 30
таким способом пробывал.
adapter.Fill(ds); на етой строчке снимается
0
nio
5966 / 3372 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
07.07.2012, 13:02 31
kama3uk, тут несколько вариантов:
- файл поврежден
- строка подключения не правильно составлена
- файл слишком большой (как написано в тексте ошибки)
- нет доступа к каталогу (для даной учетной записи)
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
07.07.2012, 15:18  [ТС] 32
когда я указываю прямой путь к файлу(не использую openfiledialog)все прекрасно открывается.а через OFD неидет.будем капать дальше
0
kama3uk
0 / 0 / 0
Регистрация: 03.04.2012
Сообщений: 49
16.07.2012, 14:45  [ТС] 33
Проблема решилась .
Было так
C#
1
string vibor_t = "Select * From '" + fullPathname + "'";
а надо вот так

C#
1
string vibor_t = "Select * From " + Path.GetFileNameWithoutExtension(fi.Name);
0
turbanoff
16.07.2012, 14:55     При попытке открыть DBF файл через OpenFileDialog вылетает ошибка
  #34

Не по теме:

Цитата Сообщение от kama3uk Посмотреть сообщение
а надо вот так
Это решение было на первой же странице темы - При попытке открыть DBF файл через OpenFileDialog вылетает ошибка

0
16.07.2012, 14:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2012, 14:55
Привет! Вот еще темы с ответами:

Ошибка при попытке редактирования DataGridView
Здравствуйте. Помогите, пожалуйста, разобраться. Есть несколько форм: основная...

Ошибка авторизации при попытке доступа к БД
Добрый день, у базы данных стоит проверка подлинности: "Проверка подлинности...

Ошибка (у пользователей) при работе с dbf (fox pro)
Добрый день.Новичку нужна помощь. Написал программу, которая работает с dbf...


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

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

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