Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Kak sozdat DB ?


Автор: jxr 16.8.2005, 00:54
Kak sozdat db ?
Ya chital mnoqo stati .
Na vsex yest
string connectstr="... data source=c:\\db.mdb"; ADO...
ili
string connectstr="... database=mydatabase"; SQL...

A yesli u menya voobshe net *.mdb fayla , kak sozdat fayl (Tables Rows Colunms ...) structuru data base ... ?
Sposibo !

Автор: Kurt 16.8.2005, 14:44
Вот в http://forum.vingrad.ru/index.php?showtopic=60732 теме поднимался похожий вопрос. Как там замечено - средствами .NET создать базу данных нельзя.

P.S. Пожалуйста, пользуйтесь транслитом. У нас не принято использовать латинницу.

Автор: jxr 16.8.2005, 23:03
И как создать *.mdb файл ?
в C# ! какие файлы базы данных ? только *.mdb ?

Автор: Kurt 17.8.2005, 13:28
Цитата
И как создать *.mdb файл ?

Хех.. Повторяю: средствами .NET созать *.mdb нельзя.

Автор: jxr 17.8.2005, 22:50
Ей хех уже была поньятно что с .NET'ом невозможна !
Я говорую что вообьше если мне нужна создать *.mdb ,что делать ???
Если незнаешь то это другое дело ,и ненадо хех !!!
Невозможна вообшее - не правилна !

Автор: Kurt 18.8.2005, 03:55
Ладно, не обижайся, я не хотел. smile
Создать новую *.mdb-базу можно через ADOX. Вот:
Цитата

How to create Microsoft Access Database Programmatically?


Neither ADO.NET nor ActiveX Data Object (ADO) provides the means to create Microsoft Access Database. However, we can create Access databases by using the Microsoft Jet OLE DB Provider and Microsoft ADO Ext. 2.7 for DDL and Security (ADOX) with the COM Interop layer.

1.    Open a new Visual Basic .NET Windows application.
2.    In Solution Explorer, right click the References node, and then click Add References.
3.    In the Add References dialog box, click COM tab, click Microsoft ADO Ext. 2.7 for DDL and Security, click Select to add it to the Selected Components section, and then click OK.
4.    Make sure to add reference to ADOX class library namespace (Imports ADOX).
5.    Change the path to the new .mdb file as appropriate.
6.    Make sure the folder provided in the path exists. If path name is not specified, the database will be created in your application folder.
7.    Create a Button control named btnCreateDatabase on the form and copy the following code in the click event of the button:

Imports ADOX

Private Sub onCreateDatabaseClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCreateDatabase.Click
        Dim cat As New Catalog()

        Try
            'Create NewDB Database.
            'Change the path to the new .mdb file as appropriate. Make sure the folder
            'provided in the path exists. If you path name is not specified, the
            'database will be created in your application folder.
            cat.Create("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                      "Data Source=C:\NewDB.mdb")

            MessageBox.Show("Database Created.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information)

        Catch Excep As System.Runtime.InteropServices.COMException
            MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

        Finally
            cat = Nothing
        End Try
End Sub



Автор: jxr 18.8.2005, 20:13
Ладно необижаюсь !
А откуда скачать ADOX.BOT ???

Автор: Kurt 18.8.2005, 22:22
Цитата
А откуда скачать ADOX.BOT ???

smile
Библиотека называется ADOX. Слово "Вот" относилось к примеру ниже.
А где скачать - не знаю, не возникало такого вопроса, т.к. эта либа уже есть в моей системе.
Попробуй сделать как в примере, что я кидал выше. Нажми в проекте "Add reference", а там перейди на закладку "COM" и поищи там что-то типа "Microsoft ADO Ext. 2.7 for DDL and Security" (или "Microsoft ADO Ext. 2.8 for DDL and Security").
Если найдешь, то все ОК - добавляй эту либу (2.7 или 2.8. - без разницы, какую найдешь) к проекту и дальше следуй примеру.
Даже если ты пишешь на C#, думаю, понять что говорится в примере не составит труда.

Автор: jxr 18.8.2005, 23:50
НЕ понил этих ???
5. Change the path to the new .mdb file as appropriate.
6. Make sure the folder provided in the path exists. If path name is not specified, the database will be created in your application folder.

Я сделаль как есть но ошибка:
<< Type 'Catalog' is not defined. >>
Добавлено @ 23:58
A Где это писать ??? VB dont know !
Imports ADOX

Автор: Kurt 19.8.2005, 02:19
Цитата
НЕ понил этих ???
5. Change the path to the new .mdb file as appropriate.
6. Make sure the folder provided in the path exists. If path name is not specified, the database will be created in your application folder.


5. Измените путь к новому .mdb на подходящий.
6. Будьте уверены, что директория, указанная в пути сущесвтвует. Если путь не указан, то база данных будет создана в директории вашего приложения.

Вот тебе готовый к запуску пример создания базы .mdb на C#:
Код

using System;
using ADOX;

namespace ADOXTest
{
    class Test
    {
        static void Main(string[] args)
        {
            CatalogClass cat = new CatalogClass();
            try
            {
                cat.Create(@"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\NewDB.mdb");
                Console.WriteLine("Database created!");
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.ReadLine();
        }
    }
}


Естественно, не забудь нажать "Add reference", перейти на закладку "COM" и там добавить "Microsoft ADO Ext. 2.7 for DDL and Security".
Все. Пробуй. Код проверен.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)