C# 如何确保在datagridview中显示类别名称而不是id?
嘿,伙计们,我尝试开发的windows窗体应用程序需要你们的帮助,也就是说,我有一个组合框,它绑定到category表并正确显示category的名称,但当提交新记录时,然后,datagridview中只显示类别的Id,但我希望确保显示类别的名称,而不是Id。请看下图,我需要将int(类别的Id)更改为string(类别的名称),下面是我到目前为止的代码:C# 如何确保在datagridview中显示类别名称而不是id?,c#,winforms,C#,Winforms,嘿,伙计们,我尝试开发的windows窗体应用程序需要你们的帮助,也就是说,我有一个组合框,它绑定到category表并正确显示category的名称,但当提交新记录时,然后,datagridview中只显示类别的Id,但我希望确保显示类别的名称,而不是Id。请看下图,我需要将int(类别的Id)更改为string(类别的名称),下面是我到目前为止的代码: using System; using System.Collections.Generic; using System.Component
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Entity;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ТестовоеЗадание.DAL;
namespace ТестовоеЗадание
{
public partial class РасходыForm : Form
{
private DatabaseEntities db = new DatabaseEntities();
Расходы model = new Расходы();
public РасходыForm()
{
InitializeComponent();
}
private void Расходы_Load(object sender, EventArgs e)
{
PopulateComboboxWithDataGrid();
}
void PopulateComboboxWithDataGrid()
{
dataGridView1.DataSource = db.Расходы.ToList();
cbxCategory.DataSource = db.КатегорииЗатрат.ToList();
cbxCategory.ValueMember = "Id";
cbxCategory.DisplayMember = "Наименование";
}
private void btnCancel_Click(object sender, EventArgs e)
{
}
private void btnDelete_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Уверены что хотите удалить эту категорию?", "Удаление", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
{
var entry = db.Entry(model);
if (entry.State == EntityState.Detached)
db.Расходы.Attach(model);
db.Расходы.Remove(model);
db.SaveChanges();
MessageBox.Show("Запись была удалена");
}
}
}
private void btnCreate_Click(object sender, EventArgs e)
{
model.Период = dtp.Value;
model.Стоимость = decimal.Parse(tbxCost.Text);
model.КатегорииЗатратId =(int)(cbxCategory.SelectedValue);
model.Комментарий = tbxComments.Text;
db.Расходы.Add(model);
db.SaveChanges();
MessageBox.Show("Запись успешно сохранена");
}
}
}
根据你的问题,,您必须使用实体关系作为categoryId的外键,并使用内部联接或联接查询来访问两个表中的数据。这样,您将能够在Datagridview中查看类别表中的类别名称,就像我使用带有内部联接的存储过程来解决问题一样,如下所示。检查工作和测试结果是否正常给你看 数据库表是我根据您的问题设计的 实体关系图 使用主外部关系作为成本表categoryID的ID 存储过程具有内部联接以访问两个表之间的数据 调用存储过程(使用实体数据模型)获取datagridview中的数据,如下所示 输出结果将类别名称显示为catName
您必须在datagridview或combobox中显示类别名称吗?请来信details@ershoaib你好感谢您的关注,我需要在DataGridViewDos中显示类别名称以显示您的
db代码>提供表中的所有列,请检查?bcoz datagridview显示了dataGridView1中提供的所有列。DataSource
@ershoaib是的,它显示了数据库中的所有数据。请查看我上面所附的图片。只需点击“图片” link@mir433请接受回答谢谢您的关注和回复,但是否有一种解决方案,只需说datagridview来显示字符串值而不是int-valuelookup到具有内部联接的存储过程,并将catName显示为字符串而不是int-catID。或者通过将int-valuelookup传递为参数