c# - SQLException 未提供的参数化查询 ###

标签 c# .net sql-server sqlexception

我搜索了这个站点和其他站点以了解并消除此异常。许多答案,但我找不到“我错了”的地方。这是我的异常(exception):

The parameterized query '(@listenr int,@stregko nvarchar(4000))SELECT * FROM Indkøbsliste' expects the parameter '@stregko', which was not supplied.

这是我的代码。

    public Indkøbsliste findIndkøbslisteStregkode(string stregko, int listenr)
    {
        Indkøbsliste inl = new Indkøbsliste();



        SqlConnection myCon = DBcon.getInstance().conn();
        myCon.Open();

        string query = "SELECT * FROM Indkøbsliste WHERE Stregkode = @stregko AND ListeNr = @listenr";
        SqlCommand com = new SqlCommand(query, myCon);
        com.Parameters.Add("@stregko", System.Data.SqlDbType.VarChar).Value = stregko; 
        com.Parameters.Add("@listenr", System.Data.SqlDbType.Int).Value = listenr; 
        SqlDataReader dr = com.ExecuteReader();
        if (dr.Read())
        {

            inl.ListeNr = dr.GetInt32(1);
            inl.Stregkode = dr.GetString(2);
            inl.Navn = dr.GetString(3);
            inl.Antal = dr.GetInt32(4);
            inl.Pris = dr.GetDecimal(5);

        }
        myCon.Close();
        return inl;
    }

最佳答案

利用AddWithValue方法

com.Parameters.AddWithValue("@stregko", stregko);
or 
com.Parameters.Add("@stregko", SqlDbType.NVarChar, 50).Value = stregko;
or 
SqlParameter parameter = new SqlParameter("@stregko", SqlDbType.NVarChar, 50);
parameter.Value = stregko;
com.Parameters.Add(parameter);

而不是

com.Parameters.Add("@stregko", System.Data.SqlDbType.VarChar).Value = stregko;

关于c# - SQLException 未提供的参数化查询 ###,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7723656/

相关文章:

c# - 如何在 Entity Framework 中查找具有组合键的实体

c# - 忽略假用户名

c# - User.Identity.Name 大小写问题

c# T 的实例

c# - DateTime 类型的 SQL 输出中不显示毫秒

PHP 编码问题读取文件 - ISO-8859-1 和 UTF-8 冲突

c# - MsiExec 进度捕捉

c# - 如何使用 Midi 点网类在 C# 中读取打击乐音符值

c# - 如何获取 mscorlib.ni.lib (.Net Framework 3.5) 的 PDB 文件

sql-server - 在 sql 中强制 unicode 字符串