簡體   English   中英

SQLException未提供的參數化查詢###

[英]SQLException The parameterized query ### which was not supplied

我搜索了該站點以及其他站點,以了解並擺脫此異常。 很多答案,但是我找不到“我錯了”的地方。 這是我的例外:

參數化查詢'(@listenr int,@ stregko nvarchar(4000))SELECT * FROMIndkøbsliste'期望參數'@stregko'未提供。

這是我的代碼。

    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;

SQL查詢需要stregko的Unicode字符串,但是您提供了非Unicode字符串。

嘗試更改您的c#代碼以分配參數,如下所示:

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

注意NVarChar中的“ N”!

您的SQL參數是nvarchar嘗試在C#代碼中使用System.Data.SqlDbType.NVarChar

從錯誤消息中開始,嘗試更改:

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

com.Parameters.Add("@stregko", System.Data.SqlDbType.NVarChar)

您需要指定大小。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM