Свържете се с база данни на Microsoft Access и попълнете DataGridView

Както и в предишния пост , много sensilla и с много малко код, ние ще видим как да се свържат в Visual Basic. мрежа с база данни, файл в Microsoft Access и след това извлича данни от една от дъските DataGridView напълни с тях.

Първото нещо, което трябва да направите, е внос на две пространства от имена, като показват по-долу:

 Вносът System.Data
 Вносът System.Data.OleDb

За този пример ще използваме форма с един бутон (Button1) и DataGridView (DataGridView1). В случай на кликване Button1 едно копирайте следния код и името на базата данни MDB и име на таблица в отчета изберете ), така че всичко работи добре.

 Дим CNN В Ню OleDbConnection на ("Доставчик на = Microsoft.Jet.OLEDB.4.0; източник на данни = C: \ myBaseAccess.mdb Потребителят Id = администратор, парола =;")

 Дим да Както Ню OleDbDataAdapter ("SELECT * от продукти", Си Ен Ен)
 Дим DS като нови DataSet

 da.Fill (DS)

 DataGridView1.DataSource = ds.Tables (0)

Ами всъщност не, много да се обясни ... да създадете връзка (CNN), а след това DataAdapter (DA), като параметър изявление за извличане на данни ( изберете ) и връзката да се използва (CNN). Ако искате да изберете само определени записи трябва да добавите едно състояние , при което изберете изявление.

В следващите редове ще остави няколко кратки определения в случай, че някой от вас са необходими и за да научите повече за различните възможности за създаване на връзка с Microsoft Access оставям на следния линк: http://www.connectionstrings.com/access

DataAdapter

Представлява набор от команди на SQL, както и свързването на базата данни, които се използват за запълване на DataSet и актуализиране на източник на данни.
DataAdapter служи като мост между DataSet и източник на данни за извличане и съхраняване на данни. За да действа като мост, DataAdapter Попълнете метод възлага, промяна на данните от DataSet да съответстват на източник на данни, и определя метод за актуализация, която променя данните в източника на данни, за да съвпадат с тези на DataSet.

DataSet

Представлява кеш паметта на данните. Тя е основен компонент на архитектурата на ADO.NET. DataSet се състои от колекция от DataTable обекти.

DataTable

Представлява таблицата с данни в паметта.
DataTable е централен обект на библиотеката на ADO.NET. Сред обектите, които използват DataTable и DataView DataSet включен.

При достъп до DataTable обекти, трябва да имате предвид, че те са с малки букви условно. Например, ако един DataTable е кръстен "mydatatable" и други "Mydatatable", низ, който се използва за търсене на една от масите се считат за малки и главни букви. Въпреки това, ако има "mydatatable", но не "Mydatatable" се смята за търсене низ не е чувствителна. А DataSet може да съдържа две DataTable обекти, които имат една и съща стойност за n Моля, собственост и различни стойности за Именно пространство собственост.

26 коментара към "Свързване към база данни на Microsoft Access и попълнете DataGridView"

  1. [...], За да напишете пример за свързване към SQL Server и Microsoft Access връзка разбрах, че въпреки че това са двата вида най-използваните бази данни, когато [...]

  2. Уругвай Карла казва:

    защото истината е много полезен. , защото ми трябваше код възможно най-прости, защото имах проблеми с зареждането на таблицата от достъп до по DataGrid и всички кодове, аз се опитах това е единственото нещо, което ми донесе другата страна на масата и с толкова малко код
    С истината и благословии
    Карла

  3. Едуин казва:

    Аз служи благодарение много! го гледам, дори ако исках да знам как филтриране по страната, за да намерите даден запис.

  4. Освалдо казва:

    Поздрави .. много добра статия и вашата страница ... Аз ще да попитам как да почистите DataGridView1 всеки път, когато щракнете върху бутона за заявка и да видите данни, но мисля, че поправката, ако не точно, но поне съм работил . Единственото нещо, което направих беше да се добавят "ds.Clear ()"
    И така:
    ds.Clear ()
    da.Fill (DS)
    DataGridView1.DataSource = ds.Tables (0)

    Сега, като правя виждаш, където въвеждате името билборд показва само намерени резултати в DataGrid.

    • Елисей казва:

      A. - за почистване: ОК, това, което правите, бихте могли да направите DataGridView1.DataSource = Нищо
      2 - За да покажете само данните, които съответстват на текстовото поле на процедурата е същата, единственото нещо, което се променя е SELECT изявление, което извършва търсене. Например: "изберете * от работника или служителя при име като"% "и TextBox1.Text &"% ""

      Късмет

  5. "Оскар", казва:

    Работил съм с Visual Studio 6 и аз се опитвам да работя с Visual Studio 2008. Направих това, което казва ръководството за показване на данни от таблица в DataGridView, но без успех. DataGridView се показва, но не и данни. В случай на натоварване формата автоматично реда код, за да попълните данните, но очевидно това не работи. Някой знае ли, ако това е известен проблем?

    • Елисей казва:

      Здравейте Оскар:
      Той има много тайни ... DataGridView контрол трябва да посочите в източника на данни собственост, която е таблица, съдържаща данни или може да има databindingsource. Препоръчвам ви да погледнете тези два члена, и аз съм сигурен, че вие ​​ще бъдете в състояние да постигне.


      http://www.solovb.net/index.php/2009/02/03/conectarse-con-base-sql-server-y-llenar-datagridview/~~V

      Късмет

  6. Maxi казва:

    Фактът, че това работи перфектно мен, но това, което не работи за мен е Вмъкване на актуализация и изтриване ... дори, с conexionstring сонда и sqlcomand,, .. и да не правят ...
    Някакви идеи?
    Благодаря Ви много.

    • Maxi казва:

      Момчета си отговарям.
      се добавя:
      Както Ню OleDbDataAdapter Дим daagregar ("INSERT INTO поръчки IDPLATO, количество, IDMesa, на клиент, Дата на ценности (" & TxtCodigo.Text & "", "& TxtCantidad.Text &", "& TxtMesa.Text & "', '0', '8 ')", CNX)
      daagregar.Fill (dsPedidos)

  7. Хорхе казва:

    Хол, като бих искал да знам, както аз правя, за да вмъкнете данни в datagridview, но ако стойността съществува и да се изпрати съобщение, което вече съществува, защото Поздрави

  8. Габриел казва:

    Благодарни за кода ...

    Има ли някакъв начин на възстановяване на данни в gridview, и ги поставя в PDF файл?.

    Поздрави от Чили

  9. tttony казва:

    Здравейте, аз се свързват с Access 2007 DB от C # NET тук добре, но имам една таблица, която има три полета с дати и искам да дам един изходен формат и имам две възможности.:

    1) След завършване на DataGridView да форматирате датата на всяко поле, съдържащ

    2) Направи го с SELECT изявление:

    Изберете ТОП 20 * Format ([buy_date], "Long Date") & "" & Format ([buy_date], "кратък период от време") AS [buy_date] от ORDER BY ID тестване DESC

    Проблемът с тази гледна точка е, че го поставя [buy_date от позиция 4 на 2, а аз имам да пиша повече код по поръчка и това е това, което аз не искам

    Пожелания

  10. Елисей каза:

    Аз получите следната грешка
    Не може да бъде намерите инсталируемо ISAM.
    da.Fill (DS)
    Направих всичко както е защо?

  11. Pablo_la31 казва:

    Здравейте! Виждам да се свържа с BD 2003 в достъпа vb.net от там въвеждат всички данни от 3 маси в DataTable с всички колони на 3 маси, сега искам, Q дисплея на едно dataGridView, но не всички колони но за някои ... тъй като мога да го направя??

  12. Jordi казва:

    Благодаря, много просто обяснение и много практичен, благодарение

  13. Даниел казва:

    Отличен пост, много полезен и много подробни, просто не знаех, че е толкова лесно.

    Благодаря

  14. Misael казва:

    Здравейте! страхотна форма и много secilla
    Актуален въпрос, след като попълните данните на DataGridView1 Как мога да получа някаква стойност от определена клетка, т.е. ако стойността kisiera DataGridView1 относно колона 1 в ред 1?

  15. Клаудио казва:

    Здравейте;
    Аз използвам Visual Basic 2008 Microsofty и комбинации като бази данни .. да пиша един и същ код, който е публикувал в тази страница получавам съобщение за грешка на линията, която казва: da.Fill (DS)

    грешката не се контролира System.Data.OleDb.OleDbException
    ErrorCode = -2147467259
    Съобщение = "не е валидно име на файл."

    Може да ми помогне?
    Благодаря ви ...

  16. tato25 казва:

    Здравейте всички нуждаете от помощ за освобождаване от отговорност на запис на данни, сочещи връзка и върви добре, но след това за високата получа това е кодът
    връзка:
    Formclientes_Load Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки MyBase.Load
    Дим връзка Както OleDbConnection
    връзка = Нов OleDbConnection, ("Доставчик на = Microsoft.Jet.OLEDB.4.0; източник на данни = C: \ proyectovb.net \ tesis.mdb")
    Като DataSet Дим dsCustomers
    Като низ Дим consultaclientes
    consultaclientes = "Изберете clientes.dni, clientes.apellido от клиенти"
    Тъй като Нови OleDbDataAdapter на Дим daclientes (consultaclientes, свързване)
    dsCustomers = Ню DataSet ()
    daclientes.Fill (dsCustomers, "клиенти")
    Dgvclientes.DataSource за = dsclientes.Tables ("клиенти")

    Добавяне на бутон:
    Като DataTable Дим TABLACLIENTES = Нова DataTable ("клиенти")
    DataRow Дим REGISTROCLIENTES = TABLACLIENTES.NewRow
    REGISTROCLIENTES (DNI) = Me.TextBox1.Text
    REGISTROCLIENTES ("NAME") = Me.TextBox2.Text
    TABLACLIENTES.Rows.Add (REGISTROCLIENTES)
    Използвате, за да изпълняват, като се направи нов връх, но първо проверете дали записът вече съществува
    Аз очаквам някакъв отговор от някаква солидарност чрез

  17. Borro казва:

    Big звяра!!
    Вече бях изгори разделите

    Аз съм с VB6 и Vb скорошна промяна до 2010 г.

    Благодаря!

  18. Jeysson казва:

    Струва ми се, ТОВА НЕ Е КОД ЗА VB 2010 г.
    PORFAVOT може да научи някой знае
    НАУЧЕТЕ QUISIEA СПЕШНО!

  19. Rodhe БДС казва:

    Отлична принос. Поздравления ми изля много. Аз iniciandome в света на VB.NET. Въпреки че съм достатъчно програмиране, но вие винаги трябва примери, когато промените езика за програмиране. Пожелания

  20. Йоан казва:

    Видях нищо отворен за това, но искам да добавя данни за формуляри на базата данни по отношение на достъпа и не мога, ако някой може да помогне би оценила

    отношение на

  21. Amaliam казва:

    Бях много полезно, благодаря!

  22. Chilon казва:

    Капосът komo носилка, изглеждат Имам един въпрос, аз съм програмиране с VB. NET 2008 съвсем не го използвате, и добро бране. Аз.

    Направих модула, където моята дефиниция на coneccionn sentensia и данни адаптер и набор от данни, направих връзката в скок от грешка, но аз N моя Coneccion.open, изглежда, както аз направих и ми кажи ако може да ми помогне ...

    МОДУЛ

    Вносът System.Data
    Вносът System.Data.OleDb
    Модул Module1
    Като Нова ConecZion OleDbConnection Public ("Доставчик на = Microsoft.Jet.OLEDB.4.0; източник на данни = C: \ Documents and Settings \ USER \ My Documents \ Pr Testear.mdb")
    Както Ню OleDbDataAdapter за Public DataAdap ("SELECT * FROM [Club XXXX] заповед NrodeSocio" ConecZion)
    Dataset Като нов DataSet Public
    Край Модул

    [B] и тук [/ B]

    FrmFormwork_Load Private Sub (ByVal изпращача Като System.Object, ByVal Е, System.EventArgs,) Дръжки MyBase.Load
    ConecZion.Open ()

    DataSet.Clear ()
    DataAdap.Fill (DataSet "miTestearDt")
    Dataset.Tables ("miTestearDt"). DefaultView.Sort = "NrodeSocio на ASC"

    ConecZion.Close ()
    End Sub

    Тази грешка и STRIP ME

    Не може да бъде намерите инсталируемо ISAM.

    porq може да бъде? : С..

    Надявам се да прегърне отговор

  23. Марко казва:

    Благодаря за помощта на проблема е фиксиран commenters се създаде копие на данните, която беше обявена в началото например моята променлива се нарича един запис, то би било: Дим рекорд = Нов DataSet () и готово!

Коментар