How can I retrieve a table from stored procedure to a datatable?

后端 未结 3 521
盖世英雄少女心
盖世英雄少女心 2020-12-05 04:26

I created a stored procedure so as to return me a table.

Something like this:

create procedure sp_returnTable
body of procedure
select * from table
e         


        
相关标签:
3条回答
  • 2020-12-05 04:44

    Explaining if any one want to send some parameters while calling stored procedure as below,

    using (SqlConnection con = new SqlConnection(connetionString))
                {
                    using (var command = new SqlCommand(storedProcName, con))
                    {
                        foreach (var item in sqlParams)
                        {
                            item.Direction = ParameterDirection.Input;
                            item.DbType = DbType.String;
                            command.Parameters.Add(item);
                        }
                        command.CommandType = CommandType.StoredProcedure;
                        using (var adapter = new SqlDataAdapter(command))
                        {
                            adapter.Fill(dt);
                        }
                    }
                }
    
    0 讨论(0)
  • 2020-12-05 04:57

    Set the CommandText as well, and call Fill on the SqlAdapter to retrieve the results in a DataSet:

    var con = new SqlConnection();
    con.ConnectionString = "connection string";
    var com = new SqlCommand();
    com.Connection = con;
    com.CommandType = CommandType.StoredProcedure;
    com.CommandText = "sp_returnTable";
    var adapt = new SqlDataAdapter();
    adapt.SelectCommand = com;
    var dataset = new DataSet();
    adapt.Fill(dataset);
    

    (Example is using parameterless constructors for clarity; can be shortened by using other constructors.)

    0 讨论(0)
  • 2020-12-05 05:00
    string connString = "<your connection string>";
    string sql = "name of your sp";
    
    using(SqlConnection conn = new SqlConnection(connString)) 
    {
        try 
        {
            using(SqlDataAdapter da = new SqlDataAdapter()) 
            {
                da.SelectCommand = new SqlCommand(sql, conn);
                da.SelectCommand.CommandType = CommandType.StoredProcedure;
    
                DataSet ds = new DataSet();   
                da.Fill(ds, "result_name");
    
                DataTable dt = ds.Tables["result_name"];
    
                foreach (DataRow row in dt.Rows) {
                    //manipulate your data
                }
            }    
        } 
        catch(SQLException ex) 
        {
            Console.WriteLine("SQL Error: " + ex.Message);
        }
        catch(Exception e) 
        {
            Console.WriteLine("Error: " + e.Message);
        }
    }
    

    Modified from Java Schools Example

    0 讨论(0)
提交回复
热议问题