【问题标题】:stored procedure select statement with multiple parameters C#具有多个参数的存储过程选择语句 C#
【发布时间】:2023-04-09 10:18:02
【问题描述】:
SqlCommand cmdadmin = new SqlCommand("loginvalidation");
cmdadmin.Connection = con;
cmdadmin.CommandType = CommandType.StoredProcedure;
SqlParameter paramadmin;
paramadmin = new SqlParameter("@vtype",drd1.ToString());
SqlParameter paramadmin1;
paramadmin1 = new SqlParameter("@username",Label1.Text);
cmdadmin.Parameters.Add(paramadmin1,paramadmin);

这是我的 C# 代码

我正在使用存储过程在 select 命令中显示以下结果,但我不知道如何在 select 语句中使用多个参数

【问题讨论】:

  • 只需添加更多.. 你已经有 2 个,添加更多。
  • 请向我们展示您的存储过程。
  • select * from trainerdetails where emailid=@Vtype and login_code=(select login_code from login_type where login_type=@username) 这是我在存储过程中使用的查询
  • 很可能你没有像 cmdadmin.ExecuteReader(); 那样运行 Execute 操作你的命令;

标签: c# stored-procedures


【解决方案1】:

你应该这样使用

SqlCommand cmdadmin = new SqlCommand("loginvalidation");
cmdadmin.Connection = con;
cmdadmin.CommandType = CommandType.StoredProcedure;
SqlParameter[] parameters ={
                         new SqlParameter("vtype",drd1.ToString()),
                         new SqlParameter("username",Label1.Text),
                        };
foreach (var p in parameters)
   {   
       cmdadmin.Parameters.Add(parameters);
   }

【讨论】:

    【解决方案2】:

    您在存储过程中的 select 语句将类似于:

    SELECT * FROM <YourTable> WHERE Column1=@vtype <AND/OR> Column2=@username
    

    【讨论】:

    • select * from trainerdetails where emailid=@Vtype and login_code=(select login_code from login_type where login_type=@username)
    • 你得到结果了吗?
    【解决方案3】:
            SqlCommand cmdadmin = new SqlCommand("loginvalidation");
            cmdadmin.Connection = con;
            cmdadmin.CommandType = CommandType.StoredProcedure;
    
            SqlParameter[] prms = new SqlParameter[] 
            {
                new SqlParameter("@vtype", drd1.ToString()),
                new SqlParameter("@username", Label1.Text)
            };
    
            cmdadmin.Parameters.AddRange(prms);
    

    【讨论】:

      【解决方案4】:

      要添加多个参数,可以创建SqlParameter的数组

      SqlCommand sql = new SqlCommand();
      
      SqlParameter[] parameter = {
      new SqlParameter("@name", "Test"), 
      new SqlParameter("@age", "24")};
      
      sql.Parameters.Add(parameter);
      

      在您的存储过程中:

      @name varchar(50)
      @age nvarchar(10)
      
      SELECT * 
      FROM <tableName> 
      WHERE Name = @name AND Age = @age
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-07
        • 1970-01-01
        相关资源
        最近更新 更多