熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

.net調用存儲過程詳細介紹

2022-06-13   來源: .NET編程 

  連接字符串

代碼如下:
string conn = ConfigurationManagerConnectionStrings["NorthwindConnectionString"]ConnectionString;

  confige文件

代碼如下:
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=;Initial Catalog=Northwind;Integrated Security=True" providerName="SystemDataSqlClient"/>
</connectionStrings>

  
只返回單一記錄集的存儲過程

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
// 設置sql連接
cmdConnection = sqlconn;
// 如果執行語句
cmdCommandText = "Categoriestest";
// 指定執行語句為存儲過程
cmdCommandType = CommandTypeStoredProcedure;

  SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dpFill(ds);
// 以下是顯示效果
GridViewDataSource = ds;
GridViewDataBind();

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
AS
select *
from Categories
GO

   沒有輸入輸出的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();

  cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;
sqlconnOpen();
// 執行並顯示影響行數
LabelText = cmdExecuteNonQuery()ToString();
sqlconnClose();

  
存儲過程Categoriestest

復制代碼 代碼如下:
CREATE PROCEDURE Categoriestest AS
insert into dboCategories
(CategoryName[Description][Picture])
values (testtestnull)
GO

  
有返回值的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;
// 創建參數
IDataParameter[] parameters = {
new SqlParameter("rval" SqlDbTypeInt)
};
// 將參數類型設置為 返回值類型
parameters[]Direction = ParameterDirectionReturnValue;
// 添加參數
cmdParametersAdd(parameters[]);

  sqlconnOpen();
// 執行存儲過程並返回影響的行數
LabelText = cmdExecuteNonQuery()ToString();
sqlconnClose();
// 顯示影響的行數和返回值
LabelText += "" + parameters[]ValueToString() ;

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
AS
insert into dboCategories
(CategoryName[Description][Picture])
values (testtestnull)
return @@rowcount
GO

  
有輸入參數和輸出參數的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;
// 創建參數
IDataParameter[] parameters = {
new SqlParameter("@Id" SqlDbTypeInt)
new SqlParameter("@CategoryName" SqlDbTypeNVarChar)
};
// 設置參數類型
parameters[]Direction = ParameterDirectionOutput; // 設置為輸出參數
parameters[]Value = "testCategoryName";
// 添加參數
cmdParametersAdd(parameters[]);
cmdParametersAdd(parameters[]);

  sqlconnOpen();
// 執行存儲過程並返回影響的行數
LabelText = cmdExecuteNonQuery()ToString();
sqlconnClose();
// 顯示影響的行數和輸出參數
LabelText += "" + parameters[]ValueToString() ;

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
@id int output
@CategoryName nvarchar()
AS
insert into dboCategories
(CategoryName[Description][Picture])
values (@CategoryNametestnull)
set @id = @@IDENTITY
GO

  
同時具有返回值輸入參數輸出參數的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;
// 創建參數
IDataParameter[] parameters = {
new SqlParameter("@Id" SqlDbTypeInt)
new SqlParameter("@CategoryName" SqlDbTypeNVarChar)
new SqlParameter("rval" SqlDbTypeInt)
};
// 設置參數類型
parameters[]Direction = ParameterDirectionOutput; // 設置為輸出參數
parameters[]Value = "testCategoryName"; // 給輸入參數賦值
parameters[]Direction = ParameterDirectionReturnValue; // 設置為返回值
// 添加參數
cmdParametersAdd(parameters[]);
cmdParametersAdd(parameters[]);
cmdParametersAdd(parameters[]);

  sqlconnOpen();
// 執行存儲過程並返回影響的行數
LabelText = cmdExecuteNonQuery()ToString();
sqlconnClose();
// 顯示影響的行數輸出參數和返回值
LabelText += "" + parameters[]ValueToString() + "" + parameters[]ValueToString();

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
@id int output
@CategoryName nvarchar()
AS
insert into dboCategories
(CategoryName[Description][Picture])
values (@CategoryNametestnull)
set @id = @@IDENTITY
return @@rowcount
GO

  
同時返回參數和記錄集的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;
// 創建參數
IDataParameter[] parameters = {
new SqlParameter("@Id" SqlDbTypeInt)
new SqlParameter("@CategoryName" SqlDbTypeNVarChar)
new SqlParameter("rval" SqlDbTypeInt) // 返回值
};
// 設置參數類型
parameters[]Direction = ParameterDirectionOutput; // 設置為輸出參數
parameters[]Value = "testCategoryName"; // 給輸入參數賦值
parameters[]Direction = ParameterDirectionReturnValue; // 設置為返回值
// 添加參數
cmdParametersAdd(parameters[]);
cmdParametersAdd(parameters[]);
cmdParametersAdd(parameters[]);

  SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dpFill(ds);
// 顯示結果集
GridViewDataSource = dsTables[];
GridViewDataBind();

  LabelText = "";
// 顯示輸出參數和返回值
LabelText += parameters[]ValueToString() + "" + parameters[]ValueToString();

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
@id int output
@CategoryName nvarchar()
AS
insert into dboCategories
(CategoryName[Description][Picture])
values (@CategoryNametestnull)
set @id = @@IDENTITY
select * from Categories
return @@rowcount
GO

  
返回多個記錄集的存儲過程
c#代碼部分

代碼如下:
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();

cmdConnection = sqlconn;
cmdCommandText = "Categoriestest";
cmdCommandType = CommandTypeStoredProcedure;

  SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dpFill(ds);
// 顯示結果集
GridViewDataSource = dsTables[];
GridViewDataBind();
// 顯示結果集
GridViewDataSource = dsTables[];
GridViewDataBind();

  
存儲過程Categoriestest

代碼如下:
CREATE PROCEDURE Categoriestest
AS
select * from Categories
select * from Categories
GO
From:http://tw.wingwit.com/Article/program/net/201311/14239.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.