这是我的数据库的模型类
public class Person
{
public int id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string Email { get; set; }
public string PhoneNumber { get; set; }
public string Fullinfo
{
get
{
return FirstName + " " + LastName + " " + Email;
}
}
}
这是主要的
public partial class DashBoard : Form
{
List<Person> persons =new List<Person>();
public DashBoard()
{
InitializeComponent();
Updated();
}
public void Updated()
{
PeopleFoundListbox.DataSource = persons;
PeopleFoundListbox.DisplayMember = "Fullinfo";
}
public void Searchpeoplebutton_Click(object sender, EventArgs e)
{
persons = Getpeople(Lastnametextbox.Text);
Updated();
}
public List<Person> Getpeople(string searchname)
{
using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.Cnn("peopleDb")))
{
var output = connection.Query<Person>("select * from People where Lastname= " + searchname).ToList();
return output;
}
}
}
我想根据姓氏选择记录我有一排姓大卫,但当我在文本框中键入大卫并搜索时,我会得到这个错误
列名david 无效
您忘记了单引号。
为了添加到GMB的答案以防止SQL注入,您可以使用参数化查询:
var output = connection.Query<Person>(
"select * from People where Lastname= @lastname", new {lastname = lastnamevariable}
).ToList();
删除了答案,因为它会产生sql注入的风险;请看另一个答案。