How to Load selected columns data in DataGridView in C#
By FoxLearn 11/21/2024 2:58:29 PM 5.21K
How to Load selected columns data in DataGridView in C#?
Open Visual Studio, then click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "LoadSelectedCloumns" and then click OK
Drag and drop CheckedListBox, Button controls from Visual Toolbox onto your form1 designer, then design your form1 as shown below.
Form1
Drag and drop a DataGridView control from Visual Toolbox onto your form2 designer.
Form2
You can add your connection string within the <connectionStrings>
section of the app.config
file.
<configuration> <connectionStrings> <add name="cn" connectionString="data source=.;initial catalog=NORTHWND;user id=sa;password=123@qaz;" providerName="System.Data.SqlClient"/> </connectionStrings> </configuration>
Once the connection string is added to your app.config
file, you can access it in your C# code using the ConfigurationManager
class.
If the ConfigurationManager
class is not recognized, you may need to add a reference to System.Configuration
. By right-clicking on References in your project, then select Add Reference.
Next, Choose System.Configuration from the list, then click OK.
If you want to load columns into the CheckedListBox dynamically, you can add the method below.
private void LoadColumnNames() { // Assuming you want to display column names from the 'categories' table using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString)) { string sql = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'Categories'"; SqlDataAdapter sda = new SqlDataAdapter(sql, cn); DataTable dt = new DataTable(); sda.Fill(dt); foreach (DataRow row in dt.Rows) { checkedListBox.Items.Add(row["COLUMN_NAME"].ToString()); } } }
The LoadColumnNames
method is added to populate the checkedListBox
with column names dynamically from the database using the INFORMATION_SCHEMA.COLUMNS
query. This ensures the user selects from actual available columns.
Add code to handle your form as below
Form1.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Configuration; using System.Data.SqlClient; namespace LoadSelectedCloumns { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnGetData_Click(object sender, EventArgs e) { string query = string.Empty; foreach (string s in checkedListBox.CheckedItems) query += s + ","; //Get columns query = query.Remove(query.Length - 1, 1); string sql = string.Format("select {0} from categories", query); using(SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["cn"].ConnectionString)) { if (cn.State == ConnectionState.Closed) cn.Open(); //Execute query to retrieve data from sql database SqlCommand cmd = new SqlCommand(sql, cn) { CommandType = CommandType.Text }; SqlDataAdapter sda = new SqlDataAdapter(cmd); using(DataTable dt = new DataTable("Categories")) { // Fill data into DataTable sda.Fill(dt); // Pass the DataTable to Form2 using(Form2 frm = new Form2(dt)) { frm.ShowDialog(); } } } } } }
The btnGetData_Click
method checks if at least one column is selected before proceeding with the query.
Form2.cs
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace LoadSelectedCloumns { public partial class Form2 : Form { public Form2(DataTable dt) { InitializeComponent(); dataGridView.DataSource = dt; } } }
The DataGridView
will display the DataTable
passed from Form1
.
This example allows the user to select specific columns from the CheckedListBox
, fetch the corresponding data from the Categories table in the database, and display it in a DataGridView
on Form2
.
VIDEO TUTORIAL
- How to make an Alarm clock in C#
- How to Save and Retrieve Image from SQL database in C#
- How to use BindingSource and BindingNavigator in C#
- How to insert Math Equation in RichTextBox in C#
- How to Transfer Information between Forms in C#
- How to use Context Menu Strip in C#
- How to Encrypt and Decrypt a String in C#
- How to Live Currency Converter in C#