C#数据适配器参数

时间:2013-01-28 16:50:56

标签: c# sql

我写了一些代码来从我的数据库中获取一些数据。 stored procedure仅使用ID作为参数,并使用它来过滤结果。我使用stored procedure中的EXEC命令运行SSMS并且它有效。但是,当我尝试使用底部的代码调用它时,它失败了,说我没有提供参数。谁能看到我做错了什么?

using (SqlConnection sqlConnect = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString))
{       
    try
    {
        DataTable dtBets = new DataTable("All Bets");
        using (SqlDataAdapter sqlDA = new SqlDataAdapter("up_Select_all", sqlConnect))
        {
            sqlDA.SelectCommand.Parameters.Add("@ID", SqlDbType.BigInt).Value = pCustomer.CustomerID;

            sqlDA.Fill(dtBets);
            return dtBets;
        }                        
    }

    catch (SqlException ex)
    {
        //catch code
    }

1 个答案:

答案 0 :(得分:7)

您忘记告诉DataAdapter它应该拨打Stored-Procedure

using (SqlDataAdapter sqlDA = new SqlDataAdapter("up_Select_all", sqlConnect))
{
    sqlDA.SelectCommand.CommandType = CommandType.StoredProcedure;
    sqlDA.SelectCommand.Parameters.Add("@ID", SqlDbType.BigInt).Value = pCustomer.CustomerID;

    sqlDA.Fill(dtBets);
    return dtBets;
}