具有数据绑定的ListView未显示DisplayMember



我有一个简单的程序。每当我在文本框中输入一个值并单击搜索按钮时,就会显示所有具有我从数据表列中搜索的值的行。我的问题是,它没有显示出它所显示的实际价值;MyprojectName.MydatatableName"。在列表中显示了具有该值tho的所有行,只是不显示值。

类以访问值

public class Acesso
{
public List<Quarto> getDados (string NumAndar)
{
IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.ConnectionString("Hotel"));
var dados = connection.Query<Quarto>($"SELECT * FROM dbo.Quartos WHERE NumAndar = '{NumAndar}'").ToList();
return dados;
}
}

ConnectionString类

public static class Helper
{
public static string ConnectionString(string name)
{
return ConfigurationManager.ConnectionStrings[name].ConnectionString;
}
}

获取表值类别

public class Quarto
{
public int QuartosID { get; set; }
public int NumQuarto { get; set; }
public int NumAndar { get; set; }
public string TipoQuarto { get; set;}
public decimal Valor { get; set;}
public string Disponibilidade { get; set; }
public bool Manutenção { get; set; }
public bool Higienização { get; set; }
public string getAndarNum
{
get
{
return $"{NumAndar}";
}
}
}

Form1.cs

public partial class Form1 : Form
{
List<Quarto> quartos = new List<Quarto>();
Quarto quarto = new Quarto();
public Form1()
{
InitializeComponent();
dadosLista.DataSource = quartos;
dadosLista.DisplayMember = quarto.getAndarNum;

}
private void btnProcurar_Click(object sender, EventArgs e)
{
Acesso db = new Acesso();
quartos = db.getDados(procurarTextBox.Text);
dadosLista.DataSource = quartos;
dadosLista.DisplayMember = quarto.getAndarNum;
}
}

想象一下,我搜索数字3。我有两行值

展示什么:

  1. 3
  2. 3

显示的内容:

  1. SQLAprenizagem.Quartos
  2. SQLAprenizagem.Quartos

尝试:

dadosLista.DisplayMember = "getAndarNum"; // or nameof(Quarto.getAndarNum)

您正在分配一个作为数据成员名称,这不是它所期望的。您还可以假定完全删除quarto字段。

最新更新