【发布时间】:2018-07-28 23:31:19
【问题描述】:
Hey Guys 需要您对我尝试开发的 windows 窗体应用程序的帮助,也就是说,我有一个绑定到类别表并正确显示类别名称的组合框,但是当提交新记录时,只有 Id类别显示在 datagridview 中,但我想确保显示类别的名称而不是 Id。看下图我需要将 int(id of category) 更改为 string(name of category) The Picture 下面是我到目前为止的代码:
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("Запись успешно сохранена");
}
}
}
【问题讨论】:
-
您必须在 datagridview 或组合框中显示类别名称吗?请写详细
-
@ershoaib 嗨!感谢您的关注,我需要在 datagridview 中显示类别名称
-
您的
db.Расходы.ToList();是否提供了表格中的所有列,请检查一下? bcoz datagridview 显示dataGridView1.DataSource中提供的所有列 -
@ershoaib 是的,它显示了数据库中的所有数据,请查看我上面附上的图片。只需点击“图片”链接