Solved

c# fill a datagrdview and text box from 2 tables

Posted on 2009-05-11
2
321 Views
Last Modified: 2012-05-07
I have a counter that is retuned to a Main form and i would like to populate a datagridvierw and a text box resulting from this counter with results from 2 tables (Customer and contact tables), how can i do this? is it possible? Currently i have a view (vwCustomersandContacts that has customer names, address and the contacts for that customer) that returns me the records that is = to counter but its causing me a headache when trying to delete a row from the datagridview so i though if i use a table instead of a view would be simplier
using (frmSearchCustomer form = new frmSearchCustomer())

            {

                if (form.ShowDialog() == DialogResult.OK)

                {

                    System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection();

                    conn = new SqlConnection(@"Data Source=<SQLInstance;Initial Catalog=<Database>;Integrated Security=True");

                    comm = new SqlCommand("SELECT * FROM vwCustomersandContacts WHERE CustomerCounter = " + form.Counter + "");

                    da = new SqlDataAdapter();

                    ds = new DataSet();

                    comm.Connection = conn;

                    da.SelectCommand = comm;

                    datagridview1.AutoGenerateColumns = false;

                    //Datagridview1 column1

                    var col1 = new DataGridViewColumn();

                    col1.DataPropertyName = "FirstName";

                    col1.Name = "First Name";

                    var cell1 = new DataGridViewTextBoxCell();

                    col1.CellTemplate = cell1;

                    datagridview1.Columns.Add(col1);

                    //Datagridview1 column2

                    var col2 = new DataGridViewColumn();

                    col2.DataPropertyName = "LastName";

                    col2.Name = "Last Name";

                    var cell2 = new DataGridViewTextBoxCell();

                    col2.CellTemplate = cell2;

                    datagridview1.Columns.Add(col2);

                    //Datagridview1 column3

                    var col3 = new DataGridViewColumn();

                    col3.DataPropertyName = "Telephone";

                    col3.Name = "Telephone";

                    var cell3 = new DataGridViewTextBoxCell();

                    col3.CellTemplate = cell3;

                    datagridview1.Columns.Add(col3);

                    //Datagridview1 column4

                    var col4 = new DataGridViewColumn();

                    col4.DataPropertyName = "Mobile";

                    col4.Name = "Mobile";

                    var cell4 = new DataGridViewTextBoxCell();

                    col4.CellTemplate = cell4;

                    datagridview1.Columns.Add(col4);

                    //Datagridview1 column5

                    var col5 = new DataGridViewColumn();

                    col5.DataPropertyName = "Department";

                    col5.Name = "Department";

                    var cell5 = new DataGridViewTextBoxCell();

                    col5.CellTemplate = cell5;

                    datagridview1.Columns.Add(col5);

                    //Datagridview1 column6

                    var col6 = new DataGridViewColumn();

                    col6.DataPropertyName = "Position";

                    col6.Name = "Position";

                    var cell6 = new DataGridViewTextBoxCell();

                    col6.CellTemplate = cell6;

                    datagridview1.Columns.Add(col6);

                    //Datagridview1 Column7

                    var col7 = new DataGridViewColumn();

                    col7.DataPropertyName = "VIP";

                    col7.Name = "VIP";

                    var cell7 = new DataGridViewTextBoxCell();

                    col7.CellTemplate = cell7;

                    datagridview1.Columns.Add(col7);
 

                    da.Fill(ds);

                    datagridview1.DataSource = ds.Tables[0];
 

                    System.Data.SqlClient.SqlDataAdapter recordAdp = new System.Data.SqlClient.SqlDataAdapter();

                    conn.Open();

                    recordAdp.SelectCommand = comm;

                    SqlDataReader reader = comm.ExecuteReader();

                    while (reader.Read())

                    {

                        txtCustomerName.Text = (String)reader["CustomerName"];

                        txtCustomerAddress.Text = (String)reader["Address"];

                        txtPostCode.Text = (String)reader["postCode"];

                        txtCustomerTel.Text = (String)reader["MainTelephone"];

                        txtProduct.Text = (String)reader["Product"];

                    }
 

                    reader.Close();

                    comm.Dispose();

                    cnn.Close();
 
 

                }

            }

Open in new window

0
Comment
Question by:wilko100
2 Comments
 
LVL 12

Accepted Solution

by:
williamcampbell earned 500 total points
Comment Utility
I noticed you datagridview1 doesn't have a DataMember

datagridview1.DataMember = "";

Here is an article that might help

http://www.akadia.com/services/dotnet_databinding.html

A little more explanation of what is going wrong would be good.
0
 

Author Closing Comment

by:wilko100
Comment Utility
Excellent, just what i was looking for. Thanks
0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Extention Methods in C# 3.0 by Ivo Stoykov C# 3.0 offers extension methods. They allow extending existing classes without changing the class's source code or relying on inheritance. These are static methods invoked as instance method. This…
Article by: Najam
Having new technologies does not mean they will completely replace old components.  Recently I had to create WCF that will be called by VB6 component.  Here I will describe what steps one should follow while doing so, please feel free to post any qu…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now