列名无效 | C#

Invalid Column Name | C#

我正在尝试弄清楚如何使用 C# 从数据库中收集数据。 我被困在 SQL 命令上,我真的不知道如何修复它。 我的错误是:无效的列名

这是我的数据库: MyDatabase

这是我的连接class:

namespace CarDAL
{
    public class ConnectionClass
    {
        private string Connectionstring =
            "MYCONNECTIONSTRING";


        public List<string> SoortSelectList(string KarakterSoort)
        {
            KarakterSoort = "Defensive";
            List<string> soortList = new List<string>();
            using (SqlConnection connection = new SqlConnection(Connectionstring))
            {
                connection.Open();

                using (SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.Karakter WHERE KarakterSoort = Defensive", connection))
                {
                    using (IDataReader dr = cmd.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            soortList.Add(dr.GetValue(0).ToString());
                            soortList.Add(dr.GetValue(1).ToString());

                        }
                    }
                }
            }

            return soortList;
        }

我认为问题出在哪里,但我不知道(也找不到)适合我的问题的解决方案。

您的 WHERE 子句:

WHERE KarakterSoort = Defensive

KarakterSoort 列中的值与 Defensive 列中的值进行比较。

这真的是你想要的吗???

很可能,您想与字符串文字进行比较 - 然后您需要将其放入 单引号 中,如下所示:

WHERE KarakterSoort = 'Defensive'

现在您要选择 KarakterSoort 列包含 Defensive

的所有行

或者,如果您将来可能想要与其他值进行比较 - 在​​查询字符串中使用 参数

WHERE KarakterSoort = @DesiredValue

并声明它

cmd.Parameters.Add("@DesiredValue", SqlDbType.VarChar, 100);

并在 运行 命令之前设置它的值:

cmd.Parameters["@DesiredValue"].Value = "Defensive";