将数据库中的 3 列合并到 datagridview 中的 1 列

Posted

技术标签:

【中文标题】将数据库中的 3 列合并到 datagridview 中的 1 列【英文标题】:Merge 3 columns from database to 1 column in datagridview 【发布时间】:2020-06-05 11:49:51 【问题描述】:

是否可以将数据库中的 3 列合并到 datagridview 中?我的数据库中有 Lname、Fname 和 Mname,但我想在我的 datagridview 中将其显示为全名。

public void LoadRecords()
    
        int i = 0;
        dataGridView1.Rows.Clear();
        cn.Open();
        cm = new SqlCommand("SELECT * FROM Members", cn);
        dr = cm.ExecuteReader();
        while (dr.Read())
        
            i += 1;
            dataGridView1.Rows.Add(i, dr[0].ToString(), dr[1].ToString(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString(), dr[6].ToString());
        
        dr.Close();
        cn.Close();
    

【问题讨论】:

您只需使用+ 运算符添加这些列 你只需要像下面这样的连接字符串dataGridView1.Rows.Add(i, .. + dr[index_Of_Fname].ToString() + dr[index_Of_Mname ].ToString() + dr[index_Of_Lname].ToString() ); 了解如何连接多个字符串:docs.microsoft.com/en-us/dotnet/csharp/how-to/… 谢谢,我会努力学习它是如何工作的 【参考方案1】:

您可以将其作为单个字段进行查询。

"SELECT Fname + ' ' + MName + ' ' + LName as [Name], column2,column3 FROM Members"

【讨论】:

您好,我在datagridview中还有其他列,例如性别、地址等。是否可以只为其他字段添加另一个查询? @heejin,您可以在同一个选择查询中指定所需的列。 当我尝试在选择查询中指定另一列时出现错误【参考方案2】:

你只需要像下面这样的连接字符串

var fullName = dr[index_Of_Fname].ToString() + ", " + dr[index_Of_Mname ].ToString() + " " + dr[index_Of_Lname].ToString();
dataGridView1.Rows.Add(i,  .., fullName,..);

【讨论】:

这对我有用,但我怎样才能添加标点符号和空格,使它看起来像 Doe, John A. 而不是 DoeJohnA? 随心所欲地连接空间。我已经更新了我的答案,请看一下。【参考方案3】:
 public void LoadRecords()
    int i = 0;
    dataGridView1.Rows.Clear();
    cn.Open();
    cm = new SqlCommand("SELECT * FROM Members", cn);
    DataTable tbl = new DataTable();
    tbl.Load(cm.ExecuteReader());
    string fullName = tbl.Rows[0][1].ToString() + tbl.Rows[0][2].ToString();
    // 0 points to first row and for example full name exists in second and third column then you can add fullName to dataGridView as one
    dr.Close();
    cn.Close();

【讨论】:

以上是关于将数据库中的 3 列合并到 datagridview 中的 1 列的主要内容,如果未能解决你的问题,请参考以下文章

如何将日期,年,月的不同列合并/合并到单个列中

如何将 3 个 Pandas 数据帧合并到第 4 个数据帧以匹配列值名称?

如何将列中的所有数据移动到单个列(不合并),然后拆分为R中的新列?

如何将具有数据的单元格与同一列中的空白单元格合并?

怎样一个表中的2个查询结果合并到一个表中的两列

怎么将两列数据合并