Connect to SQL Server database and Fill DataGridView

At this time we will see, very sensilla and with very little code, we can establish in visual basic. net connection to a SQL server, in my case SQL Server Express 2005, then to recover data from a tables to fill a DataGridView with them.

The first thing to do is import two namespaces as show below:

 Imports System.Data
 Imports System.Data.SqlClient

For this example we will use a form with a button (Button1) and a DataGridView (DataGridView1). In the click event of button1 a copy the following code and modify some parameters (name or IP of the server, the name of the database and table name in the statement SELECT ) so that everything works fine.

 Dim cnn As New SqlConnection ("Data Source = MyServidor; Initial Catalog = MyDatabase; Integrated Security = SSPI;")

 Dim da As New SqlDataAdapter ("SELECT * FROM Products", cnn)
 Dim ds As New DataSet

 da.Fill (ds)

 DataGridView1.DataSource = ds.Tables (0)

Well, actually not much to explain ... you create a connection (CNN), then a DataAdapter (da) having as parameter the statement to retrieve data ( SELECT ) and the connection to use (cnn). If you want to select only certain records need to add a condition WHERE the select statement.

In the following lines we will leave some brief definitions in case any of you were needed and to learn more about the different options for creating a SQL Server 2005 connection I leave also the following link: http://www.connectionstrings.com/sql -server-2005 .

DataAdapter

Represents a set of SQL commands and a database connection that are used to fill the DataSet and update the data source.
DataAdapter serves as a bridge between the DataSet and a data source for retrieving and storing data. To act as a bridge, DataAdapter Fill method assigns, modifying the data of DataSet to match the data source, and assigns the Update method, which modifies the data in the data source to coincide with those of DataSet.

DataSet

Represents a memory cache of data. It is a fundamental component of the ADO.NET architecture. DataSet consists of a collection of DataTable objects.

DataTable

Represents a data table in memory.
DataTable is a central object of the ADO.NET library. Among the objects that use DataTable and DataView DataSet included.

When accessing DataTable objects, you must keep in mind that these are case-sensitive conditionally. For example, if one DataTable is named "mydatatable" and other "Mydatatable", the string that is used to search one of the tables are considered case-sensitive. However, if there is "mydatatable" but no "Mydatatable" is considered the search string is not case sensitive. A DataSet can contain two DataTable objects that have the same TableName property value and different values ​​for the Namespace property. <

38 Responses to "Connect to SQL Server database and Fill DataGridView"

  1. [...] In the previous post, much sensilla and with very little code, we will see how to connect with [...]

    • Vaneagas Harvy says:

      Hello, for your publication I actually was very helpful to achieve the connection without further errors thank you very much indeed and I hope one day to return the favor soon

  2. [...] To write the example of connecting to SQL Server and Microsoft Access Connection I realized that even though these are the two types of [...]

  3. [...] Show how we can filter records in a datagridview. This example is based on this earlier, but the difference is that instead of passing as datagridview datasource to a table, you [...]

  4. Polledo Armando says:

    Hello, I have a preguta I see the method to reload the data in the datagridview efecivos are then used to use the refresh or update that put esu not update the data or simply refreshes and does nothing to try several ways to apply but not to serve. My specific question is for serving the update

    • Elisha says:

      What I'm doing right ejemple is reading data from a SQL query and they fill a datagridview. But if I change any of this information, I just do in memory. These changes are never going to the database. For them Updatey need to use to use it would need to create the update method of the SqlDataAdapter using CommandBuilder. I'll write some example.

  5. Requejo Marco says:

    I'm working on a transport system, and filter information nesecito drivers in a data grid that by writing in a text box a name and at the same time this filter and displayed on the data grid. Example. when you start typing in the text box the word Roger is displayed in the datagrid all the names with r.

  6. Carlos Cardozo says:

    Boss.

    a question as stated say the user and pass? porq in doing so connects to SQL as a Guest.

    Greetings. -

  7. THIS WELL says:

    HOW DO I SHOW ME THAT IF A PROGRAM IS IN FACT UNN DATABASE, IF A PERSONASTA EXAMPLE WITH ONLY PLACE YOUR SCHEDULE NUMBER

    • AlbertoJ says:

      Hello,
      You could put a textbox in which you should fill in the number of identity card
      and the query:

      ("SELECT * FROM Employees WHERE cedula = '" + Me.txtcedula.Text + "'", cnn)
      I have no hope here VB.net no mistake in the syntax.
      txtcedula would be the name of your textbox
      A greeting.

  8. THIS WELL says:

    I AM NEW TO THIS

  9. David Marin said:

    Hey sorry for bother, but I have a doubt and I hope someone responds because it is rather urgent, Habra as a way to fill a new table with the data I have a datagridview that is my datagridview filled with a table "x" and then filling it with the table "x" such data on my datagridview table "x" I pass it to a new table "and". Can you????????? help.

  10. Erwin says:

    Very good point

  11. Paul says:

    I have the following problem, if I use the datasource property of the grid, that I load the dataset with data coming from the database as the example above, what I want now is to change datagrid columns such as width and stuff, then I did was add columns to datagrid, but now when I compile and run the program and use the datagrid columns that I added are there, but empty!
    and apart from those columns, which I added are due to the dataset, now I want to do is q q I added columns are empty with the data of the columns that I added through these columns datasource and go ... but how?

    • Elisha says:

      It is a fairly common problem, but never explains how to fix it. The truth is that deserves a full post in order to demonstrate how it works, but as you explain briefly what you do:
      A. - Create an object with all fields of the table
      2. - Add a new data source using the previous object
      3. - In the datagridview select the data source as datasource. This Queara an object databinding
      4. - Edit the columns of the datagridview to hide, display and format the columns as you want
      5. - From the code fills the datasource object databinding

      well, I hope not complicate too much with this. Luck.

  12. gina says:

    Open way to get information from a database while displaying it like a ticket.???

    I'm starting on this but I find

  13. Jose Cruz says:

    Many thanks for your auyda served me well.
    I hope so compartinedo follow your knowledge to others puedamos toarlos.

  14. legna says:

    hello I can create a child form in Visual Basic, for example I press a button and show me another form

  15. Massey says:

    Disculpaa ..

    Add, modify and delete records from the same datagridview

    With dataset, so that when you add modify or delete, also be removed from the db.

    Gracas of antemanoo!

  16. Ricardo says:

    Sorry I am using Visual 2008, the connection string I do it with ADODB, which imported the Library "Imports ADODB" the connection is fine, but when I fill a datagridview does not work if there will not include other things, AYUDAAAA please!!

  17. Cristian says:

    I am working with VB 2010, and when I want to show the datagridview with the query example. "SELECT column1 as' Name1, column2 as' Name2 'from table"
    the datagridview.datasource = dataset.table (0)
    the datagridview does not display the selection and shows me the table raw bone, is the whole table without aliases, as I happen to view.
    How solve this problem

  18. VJUNIOR says:

    FRIEND THANKS TO THESE STEP CAN LEARN ... NOTHING WAS TRULY DID NOT ZERO ... THANK YOU ........

  19. imelda says:

    hey thanks!

  20. Luis says:

    Great post, good thing you do. Keep it going! .... Well, now the question.
    I have a DataGridView called dgv_Aclaraciones, and I have 3 columns by default (the first is of type checkbox, the second a textbox and the third type is the type button), as well, on the other hand in my database I have a table " Clarifications "with 2 fields, of which only one interested me, because that is what I show in the datagridview.

    I tried to do with the datasource, but what it does is add more columns to the datagridview. It would be great if you have the answer, however I will continue investigating, thanks.

    Excellent post! (Again!! ... XD)

  21. Alexander Hernandez says:

    good
    would someone kindly tell me how to recover from a sql db two fields such as names and other names, texboxt as a query.
    VB10 use is urgent thank you for your cooperation

  22. Bugbear said:

    Hi, thanks for your website, I have a question if there are two tables that I want to combine a single datagrid octener I have a query but do not show me the data I can do. thanks

  23. cherry32 said:

    Hello
    I followed the example. It fills the dataridview, says "not controlled System.IndexOutOfRangeException
    Message = Can not find table 0. "
    What could be happening? My dataset is empty?

    • Elisha says:

      the problem may be that, your daaset not contain any table ...
      Double check the code and verify that you are not confusing the variable DataAdapter (da) by the DataSet (ds) or some other typo.
      By invoking the DataAdapter's Fill method fills the DataSet ds with the result table of the SQL query.
      It really is very little code and very easy to understand. Check this and make it work if you can not bar all and start again. Sure it works. ;)

  24. omar_judai says:

    Hello how are!
    the reason for my visit is to see if I can help
    q is the reason I did as a program in vb 2010 and sql server 2008
    everything was fine until I wanted to test my application on another pc and I got errors when we want to save the data, I came

    Can not open the physical file "C: \ Users \ Omar \ Documents \ Visual Studio 2010 \ Projects \ Project Cost \ Project Cost \ bin \ Debug \ Database1.mdf". Operating system error 32: "32 (failed to retrieve text for this error. Reason: 15105)".
    Can not open the physical file "C: \ Users \ Omar \ Documents \ Visual Studio 2010 \ Projects \ Project Cost \ Project Cost \ bin \ Debug \ Database1_log.ldf". Operating system error 32: "32 (failed to retrieve text for this error. Reason: 15105)".
    Can not open database 'Database1', because you can not access files or memory or disk space is insufficient. See the error log of SQL Server. (Microsoft SQL Server, Error: 5120)

    the truth came out this error is because
    will be the name of the user PC or
    if mepudieran help would be very grateful

  25. Lugrarz says:

    Q Just something to add, if you change the visual System.Data.OleDb System.Data.SqlClient a t allow to do the same with an ole connection (such as access)

  26. Peter says:

    Hello very good contribution! I have a question like that just do I put my username and password in a login form data aparescan me in my datagri q is in another form???
    Thank you very much beforehand!

  27. Luis Glez says:

    Very well explained but may I use this connection and the data source, and want to create an installer for my application on other computers within the same network?

  28. CARLOS ESTRADA says:

    Hello I wonder if anyone can help me, I have a program made in visual basic 2010 which connects to a server and I compared the transfer of goods from two branches and tells me that I have differences between them in a datagridview to the manager can review faster deposit from which the error, works fine on the main branch because the information is centralized, the problem is when I do it in another store because my program I want to connect two local servers and server from where the information, how do I connect to both servers running the query and show me the differences in the datagridview. The query is Select cod_articulo, description, transferencia1, transferencia2 from (select cod_articulo, sum (n_cantidad) as deposit transferencia1 WHERE = 'uni03dpgp' and c_concepto = 'work' union select group by cod_articulo cod_articulo, sum (n_cantidad) as transferencia2 WHERE deposit = 'uni01' and c_concepto = 'work' group by cod_articulo) from tr_inventario group by cod_articulo, description. Something not here but I have more or less is so what I do is search on the same server both the transfer source and destination grouped bar codes and then through high amounts of union and gives me the result but as it should be done to compare two servers. I appreciate that I can help.

  29. Mary says:

    I need to export a field in a table to a textbox, I have seen several answers but they all despleigan in a DataGridView and I need to display in a textbox. Thank you for your help.

  30. Mary says:

    Hello I need to know how to query from Visual the value of a field in a SQL table and bring it to Visual to assign to a variable, increment and re-save the database in SQL. Someone can help me?? Urges me to continue with a project. Thanks!

Comment