如何将三个字段连接为一个字段并在数据网格视图表中显示

本文关键字:字段 数据网 数据 网格 显示 视图 三个 连接 一个 | 更新日期: 2023-09-27 17:57:39

在我的DataGridView中,我的字段为Borrower name,并且我正在使用一个表单来收集First NameMiddle NameLast Name。所以我想要的是在DataGridView中将First NameMiddle NameLast Name的值设置为Borrower name

我做了这样的事情,现在只显示First Name

datagrid_borrowers.Rows[n].Cells[2].Value = item["first_name"].ToString();

我尝试将项目名称更改为"first_name+, middle_name+, last_name",但程序中断。

我怎样才能做到这一点?以便我可以将First NameMiddle NameLast 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中手动创建列。