2011-03-04 70 views
0

我是SQL Server的新手。如何編寫用於將表數據存入數據集的存儲過程

任何人都可以幫助我將表數據恢復爲數據集,在SQL Server中使用存儲過程?

請任何人都可以幫助解釋如何編寫存儲過程?

+0

什麼是「數據集」?這不是「爲我的網站做我的工作」。請找別人爲你寫代碼。 – 2011-03-04 10:53:04

+0

從存儲過程獲取表數據與執行任何其他T-SQL查詢的過程完全相同... – FarligOpptreden 2011-03-04 10:54:00

+0

@ S.Lott:錯誤,請嘗試www.rentacoder.com – 2011-03-04 11:47:45

回答

0

你需要看看:

CREATE PROCEDURE <name> 
BEGIN 
...some SQL statements 
END 

如果您正在使用Visual Studio中的數據集,你並不需要一個存儲過程來填充DataSet。您可以簡單地編寫SQL語句

SELECT * FROM table 
1

存儲過程是一組編譯爲單個執行計劃的Transact-SQL語句。

要在SQL中創建一個存儲過程,你必須寫這樣的東西。

CREATE PROCDEURE [PROCEDURE_NAME] (
    // ... Add parameter list ... 
    // .......................... 
) 
AS 
BEGIN 
    // ... SQL statements .... 
    // ....................... 
    // ....................... 
END 
0

創作一個存儲過程返回一個數據集是容易的部分:

create table mytable (col1 char(5), col2 char(5), theKey char(10)) 
insert into mytable values ('00001', '00001', 'some') 
insert into mytable values ('00002', '00002', 'some') 
insert into mytable values ('00003', '00003', 'some') 
GO 

CREATE PROCEDURE sp_returning_dataset 
    @param1 char(10) 
AS 
BEGIN 

    select col1, col2 from mytable where [email protected] 

END 
GO 

--to test sp: 
exec sp_returning_dataset 'some' 

你一定要確保只有一個選擇從存儲過程「熄滅」。

棘手的部分是從c#/ VB執行存儲過程。您必須爲存儲過程聲明每個參數並將其添加到調用中:

using System.Data; 
using System.Data.SqlClient; 
.... 


SqlConnection cn = new SqlConnection(connectionString); 
SqlCommand command = new SqlCommand(); 
command.Connection = cn; 
command.CommandTimeout = cn.ConnectionTimeout; 
command.CommandType = CommandType.StoredProcedure; 
command.CommandText = "sp_returning_dataset"; 
SqlParameter param = new SqlParameter("@param1", SqlDbType.NText); 
param.Value = myParam; 
command.Parameters.Clear(); 
command.Parameters.Add(param); 
SqlDataAdapter adapter = new SqlDataAdapter(); 
adapter.SelectCommand = command; 
DataSet dataset = new DataSet(); 
adapter.Fill(dataset); 
command.Connection.Close(); 
//do whatever with dataset: 
... 
相關問題