Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.61/67: Рейтинг темы: голосов - 67, средняя оценка - 4.61
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
1

Ошибка при открытии БД: "Нераспознаваемый формат базы данных"

20.12.2012, 21:42. Просмотров 12878. Ответов 16
Метки нет (Все метки)

здравствуйте. подскажите что я не так делаю. как присоединить эту чертову БД и сделать простейший запрос. на запуске выдает ошибку : не распознаваемый формат базы данных.. аа не чего не понимаю (((
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
 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.OleDb;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace WindowsFormsApplication8
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
                    // Формируем строку с параметрами подключения к файлу базы данных
            string connectionString ="provider=Microsoft.Jet.OLEDB.4.0;" +"data source=C:\\BD\\video.accdb";
            
            
 
        // создаем объект OleDbConnection для соединения с Бд и передаем его конструктору строку с параметрами подключения
        OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);
 
        // создаем объект OleDbCommand
        OleDbCommand myOleDbCommand = myOleDbConnection.CreateCommand();
        myOleDbCommand.CommandText = "SELECT Firma " + "FROM Таблица ";
            myOleDbConnection.Open();
 
        OleDbDataReader myOleDbDataReader = myOleDbCommand.ExecuteReader();
        myOleDbDataReader.Read();
        
        myOleDbDataReader.Close();
        myOleDbConnection.Close();
        }
возможно я чего то не догоняю или неправильно делаю (
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2012, 21:42
Ответы с готовыми решениями:

При открытии в A2007 выдает Нераспознаваемый формат данных
Помогите разобраться. База данных сделана в 2010 accesse . При попытке ее открыть в 2007 ...

Ошибка подключения. Нераспознаваемый формат базы данных
Не проходит подключение к базе, выдает ошибку: "Ошибка подключения. Нераспознаваемый формат базы...

Ошибка "Тип "MyPoint" создан из нескольких разделенных классов в одном и том же файле." при открытии дизайнера
Добрый день, формучане. У меня возникла необходимость добавления моего класса в коллекцию, для...

Ошибка "База данных уже существует". При отсутствии базы данных
День добрый! Помогите, пожалуйста, разобраться с проблемой. Есть довольно простой код,...

16
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 21:52 2
У тебя база данных написанная на Access 2005?
0
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
20.12.2012, 21:59  [ТС] 3
нет. в 2007
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:03 4
Тогда вот посмотри мой код , как Я инициализирую БД.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
 
namespace Kypca4
{
    public partial class Ud_Buf : Form
    {
        OleDbConnectionStringBuilder bldr;
        OleDbConnection cn;
        public Ud_Buf()
        {
            InitializeComponent();
            bldr = new OleDbConnectionStringBuilder();
            bldr.DataSource = Data.str;
            bldr.Provider = "Microsoft.ACE.OLEDB.12.0";
это для 2007)
Это подробно с самого начала , что бы было понятнее.
1
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
20.12.2012, 22:07  [ТС] 5
а дальше как? нужно же вроде путь указать к самой бд
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:13 6
Если хочешь Я могу тебе показать как Я показываю содержимое таблиц БД в DGV )
Показать? Там именно Вывод с подключением
1
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
20.12.2012, 22:16  [ТС] 7
если не сложно.)
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:19 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
60
61
62
63
64
65
66
67
68
69
70
using System.Data.SqlClient;
 
namespace Kypca4
{
    public partial class Form5 : Form
    {
        public OleDbConnectionStringBuilder bldr;
        public Form5()
        {
            InitializeComponent();
            this.ControlBox = false; 
            bldr = new OleDbConnectionStringBuilder();
            bldr.DataSource = Data.str; 
            bldr.PersistSecurityInfo = true;
            bldr.Provider = "Microsoft.ACE.OLEDB.12.0";
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Form3 f3 = new Form3();
            f3.Show();
            this.Close();
        }
        private void button2_Click(object sender, EventArgs e)
        {
            OleDbConnection cn;
            string nameTable = "";
            string strSQL;
            switch (comboBox1.SelectedIndex)
            {
                case 0: nameTable = "[Рабочие]";
                    break;
                case 1: nameTable = "[Буфет]";
                    break;
                case 2: nameTable = "[Склад]";
                    break;
                case 3: nameTable = "[Продажа]";
                    break;
            }
            strSQL = "SELECT * FROM " + nameTable;
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    OleDbCommand cnd = new  OleDbCommand(strSQL, cn);
                    OleDbDataReader rdr = cnd.ExecuteReader(); 
                    DataTable t = new DataTable();
                    t.Load(rdr);
                    dataGridView1.DataSource = t.DefaultView;
                    cn.Close();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
 
        private void Form5_Load(object sender, EventArgs e)
        {
 
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
    }
}
Ниже скрин шот Формы)
1
Миниатюры
Ошибка при открытии БД: "Нераспознаваемый формат базы данных"  
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:22 9
А вот еще чисто подключение
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
using System.Data.OleDb;
 
namespace Kypca4
{
    public partial class Form3 : Form
    {
        OleDbConnectionStringBuilder bldr;
        OleDbConnection cn;
        //string con = "БД не подключена";
        public Form3()
        {
            InitializeComponent();
            this.ControlBox = false;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            bldr = new OleDbConnectionStringBuilder();
            openFileDialog1.ShowDialog();
            bldr.DataSource = openFileDialog1.FileName;
            bldr.Provider = "Microsoft.ACE.OLEDB.12.0";
            Data.str = bldr.DataSource.ToString();
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                cn.Open();
                Data.con = "БД подключена";
            }
            if (Data.con == "БД подключена")
            {
                MessageBox.Show("База данных подключена");
            }
        }
подключается через OpenFileDialog , то есть Ты сам ищешь БД. Но при желании можно указать путь.
1
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
20.12.2012, 22:28  [ТС] 10
Цитата Сообщение от Elektr_A Посмотреть сообщение
C#
1
strSQL = "SELECT * FROM " + nameTable; using (cn = new OleDbConnection(bldr.ConnectionString)) { try { cn.Open(); OleDbCommand cnd = new OleDbCommand(strSQL, cn); OleDbDataReader rdr = cnd.ExecuteReader(); DataTable t = new DataTable(); t.Load(rdr); dataGridView1.DataSource = t.DefaultView; cn.Close(); } catch (SqlException ex) { MessageBox.Show(ex.Message); } } }
я так понял это вывод?

Добавлено через 29 секунд
C#
1
2
3
4
5
6
 InitializeComponent();
            this.ControlBox = false; 
            bldr = new OleDbConnectionStringBuilder();
            bldr.DataSource = Data.str; 
            bldr.PersistSecurityInfo = true;
            bldr.Provider = "Microsoft.ACE.OLEDB.12.0";
вот так сори

Добавлено через 3 минуты
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
   strSQL = "SELECT * FROM " + nameTable;
            using (cn = new OleDbConnection(bldr.ConnectionString))
            {
                try
                {
                    cn.Open();
                    OleDbCommand cnd = new  OleDbCommand(strSQL, cn);
                    OleDbDataReader rdr = cnd.ExecuteReader(); 
                    DataTable t = new DataTable();
                    t.Load(rdr);
                    dataGridView1.DataSource = t.DefaultView;
                    cn.Close();
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
 
        private void Form5_Load(object sender, EventArgs e)
        {
 
        }
 
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
 
        }
    }
}
точнее вот. не то вставил)
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:32 11
Именно так, это вывод!)
0
0 / 0 / 1
Регистрация: 07.06.2012
Сообщений: 24
20.12.2012, 22:41  [ТС] 12
все. я окончательно запутался. почему интересно по моему коду не работает?
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
20.12.2012, 22:58 13
А какую ошибку выдает?
0
0 / 0 / 0
Регистрация: 15.12.2012
Сообщений: 21
21.12.2012, 12:32 14
Цитата Сообщение от Elektr_A Посмотреть сообщение
А какую ошибку выдает?
не распознаваемый формат базы данных

Добавлено через 31 секунду
я с аккаунта друга если что
0
20 / 14 / 2
Регистрация: 16.03.2012
Сообщений: 40
22.12.2012, 00:00 15
Значит так, если Ты писал на 2007 , то возможно просто не распознается формат *.accdb , пересохрани базу данных в формате *.db , там в Access есть функция "Сохранить как" и выбери : сохранить как БД Access 2002-2003
0
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 93
22.12.2012, 12:02 16
я переписал код. сохранил БД в 2003 и теперь он пишет такую ошибку : Отсутствуют данные для строки или столбца.
0
5 / 5 / 1
Регистрация: 27.12.2016
Сообщений: 127
27.12.2016, 19:48 17
Заменить в строке
string connectionString ="provider=Microsoft.Jet.OLEDB.4.0;"

на это
string connectionString ="Provider=Microsoft.ACE.OLEDB.12.0;"
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2016, 19:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

При обновлении базы выходит ошибка "conversion error from string "27,5""
Здравствуйте при обновлении базы выходит ошибка "conversion error from string "27,5"" на картинке...

Не открывается БД ("Нераспознаваемый формат базы данных")
вот что выдает при открытии бд, что делать?

База данных access: появляется ошибка "Нераспознанный формат базы данных"
До момента, как база данных access работала под текущей версией, все было хорошо, щас появляется...


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

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

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