【问题标题】:Change the Column name of gridview using VB.net使用 VB.net 更改 gridview 的列名
【发布时间】:2015-01-17 22:22:05
【问题描述】:

我的 gridview 的列名跟在我的数据库中我的表的列名之后。 无论如何我可以在gridview中修改他们的列名而不改变我的数据库表的列名吗??

Public Sub LoadDataPI()
    mycom.Connection = cn
    mycom.CommandText = <SQL>SELECT CDate,AName,DPosition,Address,Gender,Telephone,Cellphone,Email,Bdate,CStatus,Height,Weight,Religion,Spouse,SOccupation,FName,FOccupation,MName,MOccupation,EmerName,EmerAddress,EmerContact FROM tbl_applicant </SQL>

    Dim myadap As New MySqlDataAdapter(mycom)
    Dim mydt As New DataTable

    myadap.Fill(mydt)
    grdApplicantsPI.DataSource = mydt
    myadap.Dispose()
End Sub

【问题讨论】:

  • 您可以使用别名select CDate as Date, AName as Name ... 这样您就不需要更改数据库中的列名。
  • 不,它不像你解释的那样工作 '#420000 你的 sql 语法中有错误,靠近 'Name,DPosition as Desired Position,Address,Gender,Telephone,Cellphone,Email,Bdat' at line 1'
  • 像这样使用反引号`select CDate as Date, AName as Name 可能是因为你有保留字的别名
  • 反引号是什么意思? @CodeSlayer
  • (`) 这是反引号,但由于此站点,目前无法显示。只需在别名前后添加反引号

标签: mysql sql vb.net gridview


【解决方案1】:

有两种方法可以做到,我更喜欢第一种,因为代码行数更少...

  1. 更改您的 SELECT 查询以在您的查询中包含“AS”语句...

     mycom.CommandText = <SQL>SELECT CDate AS "Commencement Date", AName AS "Name", DPosition AS "Director Position", Address, Gender, Telephone, Cellphone, Email, Bdate, CStatus, Height, Weight, Religion, Spouse, SOccupation, FName AS "First Name", FOccupation, MName, MOccupation, EmerName, EmerAddress, EmerContact FROM tbl_applicant </SQL>
    
  2. 更改 Datagridview 中的标题 *(填充 Datagridview 后)因为名称来自数据表(您可能还想隐藏不必要的列)...

     grdApplicantsPI.Columns["CDate"].HeaderText = "Commencement Date"
     grdApplicantsPI.Columns["FName"].HeaderText = "First Name"
     grdApplicantsPI.Columns["EmerName"].Visible = false 'hiding a column 
    

【讨论】:

    【解决方案2】:

    如果您使用的是 DataGridView,那么您可以使用此控件的 Columns 集合中的 HeaderText 属性:

    'grdApplicantsPI.Columns(<column index>).HeaderText = "New text"
    grdApplicantsPI.Columns(0).HeaderText = "Nº"
    

    'grdApplicantsPI.Columns(<column name>).HeaderText = "New text"
    grdApplicantsPI.Columns("ID").HeaderText = "Nº"
    

    【讨论】:

    • 即使你的建议没有奏效,第一个它说它的索引超出了范围,而下一个则表明对象引用未设置为对象的实例。
    • 因为首先您需要分配数据源:grdApplicantsPI.DataSource = mydt (LoadDataPI) 并且仅在 LoadDataPI 之后您可以更改列的名称,例如:grdApplicantsPI.Columns(0).HeaderText = "Nº".
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多