c#

位置:IT落伍者 >> c# >> 浏览文章

.net调用存储过程详细介绍


发布日期:2022年08月29日
 
.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               

上一篇:C#如何在PPT中插入anychart图表

下一篇:ADO.NET 连接数据库字符串小结