如何将三个字段连接为一个字段并在数据网格视图表中显示
本文关键字:字段 数据网 数据 网格 显示 视图 三个 连接 一个 | 更新日期: 2023-09-27 17:57:39
在我的DataGridView
中,我的字段为Borrower name
,并且我正在使用一个表单来收集First Name
、Middle Name
和Last Name
。所以我想要的是在DataGridView
中将First Name
、Middle Name
和Last Name
的值设置为Borrower name
。
我做了这样的事情,现在只显示First Name
。
datagrid_borrowers.Rows[n].Cells[2].Value = item["first_name"].ToString();
我尝试将项目名称更改为"first_name+, middle_name+, last_name"
,但程序中断。
我怎样才能做到这一点?以便我可以将First Name
、Middle Name
和Last Name
的值连接为Borrower name
。
这是我的完整代码:
private void DisplayData()
{
sda = new MySqlDataAdapter("Select * from user_reg where user_type = 'Member' ",conn);
dt = new DataTable();
sda.Fill(dt);
datagrid_borrowers.Rows.Clear();
foreach (DataRow item in dt.Rows)
{
int n = datagrid_borrowers.Rows.Add();
datagrid_borrowers.Rows[n].Cells[0].Value = (n + 1).ToString();
datagrid_borrowers.Rows[n].Cells[1].Value = item["user_id"].ToString();
datagrid_borrowers.Rows[n].Cells[2].Value = item["first_name"].ToString();
datagrid_borrowers.Rows[n].Cells[3].Value = item["address"].ToString();
datagrid_borrowers.Rows[n].Cells[4].Value = item["sex"].ToString();
datagrid_borrowers.Rows[n].Cells[5].Value = item["nic_number"].ToString();
datagrid_borrowers.Rows[n].Cells[6].Value = item["contact_number"].ToString();
datagrid_borrowers.Rows[n].Cells[7].Value = item["email_address"].ToString();
}
}
试试这个:
datagrid_borrowers.Rows[n].Cells[2].Value = item["first_name"].ToString()
+ " " + item["middle_name"].ToString()
+ " " + item["last_name"].ToString();
您已经使用数据表适配器从数据库中提取数据,因此结果将是DataRow对象的集合
为了访问存储在每个对象中的字段,您应该使用Indexer,正如您在这个链接中看到的,您只需要将一个列名传递给这个索引器。
最简单的方法是使用String.Format,就像这个一样
datagrid_borrowers.Rows[n].Cells[2].Value = String.Format("{0} {1} {2}",
item["first_name"].ToString()
item["Middle_name"].ToString()
item["Last_name"].ToString()
);
这样一来,您的代码将更加清晰易读。
private void DisplayData()
{
sda = new MySqlDataAdapter("Select * from user_reg where user_type = 'Member' ",conn);
dt = new DataTable();
sda.Fill(dt);
datagrid_borrowers.Rows.Clear();
foreach (DataRow item in dt.Rows)
{
int n = datagrid_borrowers.Rows.Add();
datagrid_borrowers.Rows[n].Cells[0].Value = (n + 1).ToString();
datagrid_borrowers.Rows[n].Cells[1].Value = item["user_id"].ToString();
datagrid_borrowers.Rows[n].Cells[2].Value = item["first_name"].ToString() + item["middle_name"].ToString() + item["last_name"].ToString();
datagrid_borrowers.Rows[n].Cells[3].Value = item["address"].ToString();
datagrid_borrowers.Rows[n].Cells[4].Value = item["sex"].ToString();
datagrid_borrowers.Rows[n].Cells[5].Value = item["nic_number"].ToString();
datagrid_borrowers.Rows[n].Cells[6].Value = item["contact_number"].ToString();
datagrid_borrowers.Rows[n].Cells[7].Value = item["email_address"].ToString();
}
}
使用数据绑定的全部功能!
同时使用DataColumn.Expression属性。
sda = new MySqlDataAdapter("Select * from user_reg where user_type = 'Member' ",conn);
dt = new DataTable();
sda.Fill(dt);
// Add full_name column with expression.
dt.Columns.Add("Full Name", typeof(string),
"first_name + ' ' + middle_name + ' ' + last_name");
datagrid_borrowers.DataSource = dt; // data binding
// Hide unnecessary columns.
datagrid_borrowers.Columns["first_name"].Visible = false;
datagrid_borrowers.Columns["middle_name"].Visible = false;
datagrid_borrowers.Columns["last_name"].Visible = false;
请注意,不应在DataGridView
中手动创建列。