1. Create a form as shown below
2. Code to bind datagridview
//code for ADD button click private void btnAdd_Click(object sender, EventArgs e) { try { //create database connection string connectionString = "Data Source=abc;Initial Catalog=abc;User ID=abc;Password=abc"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); //sql statement to insert information in database string sql = "INSERT INTO Person (Name, Age, Email, Phone) VALUES (@Name, @Age, @Email, @Phone)"; //code to insert into database SqlCommand cmd = new SqlCommand(sql, connection); cmd.Parameters.AddWithValue("@Name", txtName.Text); cmd.Parameters.AddWithValue("@Age", txtAge.Text); cmd.Parameters.AddWithValue("@Email", txtEmail.Text); cmd.Parameters.AddWithValue("@Phone", txtPhone.Text); cmd.CommandType = CommandType.Text; int result = cmd.ExecuteNonQuery(); //check if record has been added to the database if (result > 0) MessageBox.Show("Record Added!"); else MessageBox.Show("Failed to add!"); //bind datagridview with data from database string query = "SELECT * FROM Person"; SqlDataAdapter da = new SqlDataAdapter(query, connection); SqlCommandBuilder cb = new SqlCommandBuilder(da); DataTable dt = new DataTable(); da.Fill(dt); BindingSource bs = new BindingSource(); bs.DataSource = dt; dataGridView1.DataSource = bs; //set width of particular datagridview column dataGridView1.Columns[2].Width = 160; //hide a particular datagridview column dataGridView1.Columns[4].Visible = false; connection.close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
An interesting fact about data grid is that A grid supports one or more headers. When a single header is used, the grid has Tree List View control behavior, just like the Microsoft Windows Explorer.
ReplyDeletehttp://www.dapfor.com/en/net-suite/net-grid/features/headers-and-columns
Data contained in IList, IBindingList or IListSource collections. The grid provides Grid.DataSource property for data binding. Bound collections are convenient for adding and removing data and for complete separation of the data layer from the presentation layer. These collections may also contain objects that implement INotifyPropertyChanged interface. Just like in the unbound mode, the grid subscribes to notifications of these objects and therefore becomes an event-driven grid with automated data sorting, filtering and grouping. more detail visit dapfor. com
ReplyDelete