DataGridView中的SQL数据

嘿伙计们,我有一个应用程序,我想在DataGridView中显示来自sql db的一些数据…我现在在DataGridView中显示数据但是这里是我的问题…我怎样才能使用自定义标题标题,因为我不希望SQL列标题用于DataGridView列标题。 此外,我想要它,以便当用户双击一行时,它将从该行打开filePath值…我还希望能够指定列的宽度。 以下是表格的布局方式。

SQL表:Row_ID(我不希望在网格中显示),PartNumber,CMMNumber,CreatedOn,FilePath,RacfId,currTime

数据网格视图所需格式:部件号,CMM号,创建时间,路径,用户ID,已查看

当前代码 – 它获取数据(全部,包括Row_ID)并使用sql列名称作为数据网格视图列的名称,它也只使用默认列宽。

private void NewAlert_Load(object sender, EventArgs e) { string connString = "Server=FRXSQLDEV;Database=MyDB;User Id=ID;Password=Password;"; string query = "SELECT * FROM CMMReports WHERE RacfId IS NULL;"; SqlDataAdapter dAdapter = new SqlDataAdapter(query, connString); SqlCommandBuilder cBuilder = new SqlCommandBuilder(dAdapter); DataTable dTable = new DataTable(); dAdapter.Fill(dTable); //BindingSource to sync DataTable and DataGridView BindingSource bSource = new BindingSource(); //set the BindingSource DataSource bSource.DataSource = dTable; //set the DataGridView DataSource dgView.DataSource = bSource; dAdapter.Update(dTable); } 

如果要使用自定义标题等。首先创建一个新的数据表,并给出名称。 小心typeof()

 DataTable dt = new DataTable(); dt.Columns.Add("Title 1",typeof(int)); dt.Columns.Add("Title 2", typeof(string)); dt.Columns.Add("Title 3", typeof(DateTime)); dt.Columns.Add("Title 4", typeof(bool)); dt.AcceptChanges(); 

获取来自SQL的所有数据并为其创建对象

foreach(yourSqlData中的var项)

 object[] row = new object[] { item.data1.ToString(), // string columns Convert.ToInt32(item.data2), // int columns Convert.ToDateTime(item.data3), // datetime column Convert.ToBoolean(item.data4) // bool column }; dt.Rows.Add(row); 

并将dt绑定到gridView

为了隐藏你的列(“Row_ID”)你可以使用

 dgView.Columns[0].Visible = false; 

用于设置标题文本

 dgView.Columns[1].HeaderText = "PartNumber";