【问题标题】:Select statement: Invalid column name, in C# using Dapper选择语句:列名无效,在 C# 中使用 Dapper
【发布时间】:2020-08-07 07:47:36
【问题描述】:

这是我的数据库的模型类

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 作为姓氏,但是当我在文本框中输入 david 并进行搜索时,我会收到此错误

无效的列名大卫

【问题讨论】:

标签: c# sql sql-server tsql dapper


【解决方案1】:

你忘记了单引号。

要添加到 GMB 的答案以防止 SQL 注入,您可以使用匿名变量:

   var output = connection.Query<Person>(
    "select * from People where Lastname= @lastname", new {lastname = lastnamevariable}
).ToList();

【讨论】:

    【解决方案2】:

    基本上,您的查询缺少搜索名称周围的单引号。

    这个:

    var output = connection.Query<Person>(
        "select * from People where Lastname= " + searchname
    ).ToList();
    

    应该是:

    var output = connection.Query<Person>(
        "select * from People where Lastname= '" + searchname + "'"
    ).ToList();
    

    在没有单引号的情况下,SQL Server 将文字字符串视为列名,因此您收到的错误。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多