c# - 变量名 '@KorisnickoIme' 已经声明。变量名称在查询批处理或存储过程中必须是唯一的

标签 c# sql

我尝试对您收到错误的 GridView 中的数据进行排序(启用排序)。变量名称在查询批处理或存储过程中必须是唯一的。 2.这里和适配器

{
 istorijaKupovinaDataSource.SelectCommand = @"
       SELECT   k.Datum, p.Naziv AS Proizvodjac, l.Naziv AS Lek, k.Kolicina, k.Cena, ni.Naziv AS NacinIsporuke
            FROM    Kupovina k
                    INNER JOIN Lek l ON k.LekId = l.Id 
                    INNER JOIN NacinIsporuke ni ON k.NacinIsporukeID = ni.Id 
                    INNER JOIN Proizvodjac p ON l.ProizvodjacId = p.Id 
                    INNER JOIN Kupac u ON k.KupacId = u.Id
            WHERE   u.KorisnickoIme = @KorisnickoIme
            ORDER BY k.Datum";

        istorijaKupovinaDataSource.SelectParameters.Add("KorisnickoIme", DbType.String, User.Identity.Name);

}
public static void Kupi(long lekID, int kolicina, decimal cena, long nacinIsporukeID, string korisnickoIme)
    {
        SqlConnection con = new SqlConnection();
        try
        {
            con.ConnectionString = ConfigurationManager.ConnectionStrings["OnlineApotekaConnectionString"].ConnectionString;
            con.Open();

            string updateLager = @"
            UPDATE  Lager
            SET Kolicina=Kolicina-@Kolicina
            WHERE LekID=@LekID";

            SqlCommand cmd = new SqlCommand(updateLager, con);
            cmd.Parameters.AddWithValue("@LekID", lekID);
            cmd.Parameters.AddWithValue("@Kolicina", kolicina);

            cmd.ExecuteNonQuery();

            string insertIntoKupovina=@"
                INSERT INTO Kupovina (KupacID, LekID, Datum, Kolicina, Cena, NacinIsporukeID) 
                VALUES (@KupacID, @LekID, @Datum, @Kolicina, @Cena, @NacinIsporukeID)";

            cmd = new SqlCommand(insertIntoKupovina, con);
            cmd.Parameters.AddWithValue("@KupacID", KupacAdapter.GetID(korisnickoIme));
            cmd.Parameters.AddWithValue("@LekID", lekID);
            cmd.Parameters.AddWithValue("@Datum", DateTime.Now.Date);
            cmd.Parameters.AddWithValue("@Kolicina", kolicina);
            cmd.Parameters.AddWithValue("@Cena", cena);
            cmd.Parameters.AddWithValue("@NacinIsporukeID", nacinIsporukeID);

            cmd.ExecuteNonQuery();

        }
        catch (Exception ex)
        {
            throw ex;
        }
        finally
        {
            con.Close();
        }
    }
}

{ SqlConnection con = new SqlConnection();

    try
    {
        con.ConnectionString = ConfigurationManager.ConnectionStrings["OnlineApotekaConnectionString"].ConnectionString;
        con.Open();

        string selectQuery = @"
            SELECT ID
            FROM Kupac
            WHERE KorisnickoIme = @KorisnickoIme";

        SqlCommand cmd = new SqlCommand(selectQuery, con);
        cmd.Parameters.AddWithValue("@KorisnickoIme", korisnickoIme);

        return Convert.ToInt64(cmd.ExecuteScalar());

    }
    catch (Exception err)
    {
        throw err;
    }
    finally
    {
        con.Close();
    }
}
public List<Kupac> SelectAll()
{
    List<Kupac> list = new List<Kupac>();

    SqlConnection con = new SqlConnection();

    try
    {
        con.ConnectionString = ConfigurationManager.ConnectionStrings["OnlineAotekaConnectionString"].ConnectionString;
        con.Open();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = con;

        string selectQuery = "SELECT * FROM Kupac";

        cmd.CommandText = selectQuery;
        SqlDataReader reader = cmd.ExecuteReader();

        while (reader.Read())
        {
            list.Add(new Kupac(reader["Jmbg"].ToString(), reader["Ime"].ToString(), reader["Prezime"].ToString(), reader["Telefon"].ToString(), reader["Adresa"].ToString(), reader["Email"].ToString(), reader["KorisnickoIme"].ToString()));
        }
        reader.Close();
        return list;
    }
    catch (Exception err)
    {
        throw err;
    }
    finally
    {
        con.Close();
    }
}

最佳答案

我认为你应该使用

  istorijaKupovinaDataSource.SelectParameters.Clear();
    istorijaKupovinaDataSource.SelectParameters.Add("KorisnickoIme", DbType.String, User.Identity.Name);

代替

istorijaKupovinaDataSource.SelectParameters.Add("KorisnickoIme", DbType.String, User.Identity.Name);

关于c# - 变量名 '@KorisnickoIme' 已经声明。变量名称在查询批处理或存储过程中必须是唯一的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15322101/

相关文章:

c# - Azure 服务结构参与者依赖注入(inject)

c# - Numericupdown 鼠标滚轮事件将 decimal 增加多于一个增量

c# - 如何在将数据从 Dataset 导出到 Excel 后下载 excel 文件?

c# - String.Empty 不是 Const 有什么具体原因吗?

php - “#1060 - Duplicate column name” 从 SELECT 转换为 UPDATE

c# - 一旦图像在系统托盘中结束,通知图标图像看起来很糟糕

sql - 如何计算 pgsql 中值大于 0 的逗号拆分值?

sql - END事务和COMMIT事务的区别

sql - MySQL——标记除 1 个匹配行之外的所有行

sql - 同月初一