将数据库中的 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 个数据帧以匹配列值名称?