我有一个简单的程序。每当我在文本框中输入一个值并单击搜索按钮时,就会显示所有具有我从数据表列中搜索的值的行。我的问题是,它没有显示出它所显示的实际价值;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。我有两行值
展示什么:
- 3
- 3
显示的内容:
- SQLAprenizagem.Quartos
- SQLAprenizagem.Quartos
尝试:
dadosLista.DisplayMember = "getAndarNum"; // or nameof(Quarto.getAndarNum)
您正在分配一个值作为数据成员名称,这不是它所期望的。您还可以假定完全删除quarto
字段。