C#數(shù)據(jù)庫(c#通過調(diào)用存儲過程返回表)

字號:

通過調(diào)用存儲過程不但能返回值,還能返回一張表,下面的代碼中實(shí)現(xiàn)了創(chuàng)建一個臨時表,并返回這個表(支持多個)的用法。希望對大家有幫助,
    Examda提示: 這里還涉及到一個臨時表的創(chuàng)建,什么是sql server真正的臨時表,并發(fā)不沖突的臨時表,要讓系統(tǒng)建立在tempdb中才是,sql server會自動管理這些臨時表
    c#代碼如下
    DataSet ds = new DataSet();
    System.Data.OleDb.OleDbCommand cmd = m_TdlyDataAccess.DBConnection.CreateCommand();
    cmd.CommandText = "prcTest";
    cmd.CommandType = CommandType.StoredProcedure;
    System.Data.OleDb.OleDbDataAdapter dap = new System.Data.OleDb.OleDbDataAdapter(cmd);
    dap.Fill(ds);
    存儲過程如下
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_NULLS ON
    GO
    CREATE PROCEDURE [dbo].[prcTest]
    AS
    begin
    CREATE TABLE #t(x INT PRIMARY KEY,y int default 0,z int default 0)
    INSERT INTO #t VALUES (99,0,0)
    INSERT INTO #t VALUES (239,0,0)
    INSERT INTO #t VALUES (939,0,0)
    select * from #t
    drop table #t
    end
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    SET ANSI_NULLS ON
    GO