简体   繁体   中英

Stored procedure returns no rows with SqlDataAdapter

I'm new to using SqlDataAdpter and I'm trying to execute a stored procedure. The stored procedure executes successfully but no rows are returned. I've used SQL Server Profiler to monitor the call and it runs successfully (I can copy and execute the query from profiler without modifying it and get results).

I have the following:

public ActionResult Index()
{
    SqlConnection conn = null;
    DataSet results = null;

    try
    {
        string connectionString = // ... my connection
        conn = new SqlConnection(connectionString );
        string query = @"usp_mySP";

        conn.Open();

        SqlDataAdapter sqlAdpt = new SqlDataAdapter(query, conn);
        sqlAdpt.SelectCommand.CommandType = CommandType.StoredProcedure;

        var dataDate = new SqlParameter { ParameterName = "@DataDate", Value = DateTime.Now };
        var idList = new SqlParameter { ParameterName = "@IDList", Value = "1231,2324,0833" };                 

        sqlAdpt.SelectCommand.Parameters.Add(dataDate);
        sqlAdpt.SelectCommand.Parameters.Add(idList);

        results = new DataSet();
        sqlAdpt.Fill(results);

        sqlAdpt.Dispose();
    }
    catch (SqlException e)
    {               
        throw new Exception("Exception:" + e.Message);
    }
    finally
    {
        if (conn != null)
            conn.Close();
    }

    return View(results);
}

When I inspect the DataSet through the debugger, it always returns 0 rows.

Please help with what I'm doing wrong?

Note: I've also tried (but do NOT prefer) executing as a SQL command:

EXEC usp_mySP @DataDate, @IDList

and it didn't work either as I got int to varchar conversion errors.

I think you try to add SqlParameter using SqlCommand like this :

SqlCommand cmd = new SqlCommand();
cmd.parameter.addwithvalue(@DataDate,DateTime.Now);

So the reason was because of set nocount on . I added it to my sp and it works. Thank you everyone for clarifying.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM