.net调用存储过程详细介绍
连接字符串
stringconn=ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
confige文件
<connectionStrings>
<addname="NorthwindConnectionString"connectionString="DataSource=.;InitialCatalog=Northwind;IntegratedSecurity=True"providerName="System.Data.SqlClient"/>
</connectionStrings>
1.只返回单一记录集的存储过程
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
//设置sql连接
cmd.Connection=sqlconn;
//如果执行语句
cmd.CommandText="Categoriestest1";
//指定执行语句为存储过程
cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdapterdp=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
//填充dataset
dp.Fill(ds);
//以下是显示效果
GridView1.DataSource=ds;
GridView1.DataBind();
存储过程Categoriestest1
CREATEPROCEDURECategoriestest1
AS
select*
from Categories
GO
2.没有输入输出的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest2";
cmd.CommandType=CommandType.StoredProcedure;
sqlconn.Open();
//执行并显示影响行数
Label1.Text=cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
存储过程Categoriestest2
CREATEPROCEDURECategoriestest2 AS
insertintodbo.Categories
(CategoryName,[Description],[Picture])
values("test1","test1",null)
GO
3.有返回值的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest3";
cmd.CommandType=CommandType.StoredProcedure;
//创建参数
IDataParameter[]parameters={
newSqlParameter("rval",SqlDbType.Int,4)
};
//将参数类型设置为返回值类型
parameters[0].Direction=ParameterDirection.ReturnValue;
//添加参数
cmd.Parameters.Add(parameters[0]);
sqlconn.Open();
//执行存储过程并返回影响的行数
Label1.Text=cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
//显示影响的行数和返回值
Label1.Text+="-"+parameters[0].Value.ToString();
存储过程Categoriestest3
CREATEPROCEDURECategoriestest3
AS
insertintodbo.Categories
(CategoryName,[Description],[Picture])
values("test1","test1",null)
return@@rowcount
GO
4.有输入参数和输出参数的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest4";
cmd.CommandType=CommandType.StoredProcedure;
//创建参数
IDataParameter[]parameters={
newSqlParameter("@Id",SqlDbType.Int,4),
newSqlParameter("@CategoryName",SqlDbType.NVarChar,15),
};
//设置参数类型
parameters[0].Direction=ParameterDirection.Output; //设置为输出参数
parameters[1].Value="testCategoryName";
//添加参数
cmd.Parameters.Add(parameters[0]);
cmd.Parameters.Add(parameters[1]);
sqlconn.Open();
//执行存储过程并返回影响的行数
Label1.Text=cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
//显示影响的行数和输出参数
Label1.Text+="-"+parameters[0].Value.ToString();
存储过程Categoriestest4
CREATEPROCEDURECategoriestest4
@idintoutput,
@CategoryNamenvarchar(15)
AS
insertintodbo.Categories
(CategoryName,[Description],[Picture])
values(@CategoryName,"test1",null)
set @id=@@IDENTITY
GO
5.同时具有返回值、输入参数、输出参数的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest5";
cmd.CommandType=CommandType.StoredProcedure;
//创建参数
IDataParameter[]parameters={
newSqlParameter("@Id",SqlDbType.Int,4),
newSqlParameter("@CategoryName",SqlDbType.NVarChar,15),
newSqlParameter("rval",SqlDbType.Int,4)
};
//设置参数类型
parameters[0].Direction=ParameterDirection.Output; //设置为输出参数
parameters[1].Value="testCategoryName"; //给输入参数赋值
parameters[2].Direction=ParameterDirection.ReturnValue; //设置为返回值
//添加参数
cmd.Parameters.Add(parameters[0]);
cmd.Parameters.Add(parameters[1]);
cmd.Parameters.Add(parameters[2]);
sqlconn.Open();
//执行存储过程并返回影响的行数
Label1.Text=cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
//显示影响的行数,输出参数和返回值
Label1.Text+="-"+parameters[0].Value.ToString()+"-"+parameters[2].Value.ToString();
存储过程Categoriestest5
CREATEPROCEDURECategoriestest5
@idintoutput,
@CategoryNamenvarchar(15)
AS
insertintodbo.Categories
(CategoryName,[Description],[Picture])
values(@CategoryName,"test1",null)
set @id=@@IDENTITY
return@@rowcount
GO
6.同时返回参数和记录集的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest6";
cmd.CommandType=CommandType.StoredProcedure;
//创建参数
IDataParameter[]parameters={
newSqlParameter("@Id",SqlDbType.Int,4),
newSqlParameter("@CategoryName",SqlDbType.NVarChar,15),
newSqlParameter("rval",SqlDbType.Int,4) //返回值
};
//设置参数类型
parameters[0].Direction=ParameterDirection.Output; //设置为输出参数
parameters[1].Value="testCategoryName"; //给输入参数赋值
parameters[2].Direction=ParameterDirection.ReturnValue; //设置为返回值
//添加参数
cmd.Parameters.Add(parameters[0]);
cmd.Parameters.Add(parameters[1]);
cmd.Parameters.Add(parameters[2]);
SqlDataAdapterdp=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
//填充dataset
dp.Fill(ds);
//显示结果集
GridView1.DataSource=ds.Tables[0];
GridView1.DataBind();
Label1.Text="";
//显示输出参数和返回值
Label1.Text+= parameters[0].Value.ToString()+"-"+parameters[2].Value.ToString();
存储过程Categoriestest6
CREATEPROCEDURECategoriestest6
@idintoutput,
@CategoryNamenvarchar(15)
AS
insertintodbo.Categories
(CategoryName,[Description],[Picture])
values(@CategoryName,"test1",null)
set @id=@@IDENTITY
select*fromCategories
return@@rowcount
GO
7.返回多个记录集的存储过程
c#代码部分
SqlConnectionsqlconn=newSqlConnection(conn);
SqlCommandcmd=newSqlCommand();
cmd.Connection=sqlconn;
cmd.CommandText="Categoriestest7";
cmd.CommandType=CommandType.StoredProcedure;
SqlDataAdapterdp=newSqlDataAdapter(cmd);
DataSetds=newDataSet();
//填充dataset
dp.Fill(ds);
//显示结果集1
GridView1.DataSource=ds.Tables[0];
GridView1.DataBind();
//显示结果集2
GridView2.DataSource=ds.Tables[1];
GridView2.DataBind();
存储过程Categoriestest7
CREATEPROCEDURECategoriestest7
AS
select*fromCategories
select*fromCategories
GO
相关文章
- [.NET控件]Telerik RadControls for ASP.NET AJAX 2008 Q1 net 2.0 Web.UI「建议收藏」
- .NET GC工作流程
- 宝塔面板Linux系统通过Docker部署VB.NET Asp.Net Core WebAPI应用
- .Net Core3.1 SignalR for WPF Asp.net
- MySQL Error number: MY-011301; Symbol: ER_XPLUING_NET_STARTUP_FAILED; SQLSTATE: HY000 报错 故障修复 远程处理
- net掌握Linux环境下的.NET开发(linuxdot)
- 使用.NET技术操作MySQL数据库:简单易学,高效稳定(.net操作mysql)
- .net下的数据库连接SQLServer驱动在.NET平台下的数据库连接简明介绍(sqlserver驱动在)
- NET与Oracle携手走向未来(.net 对oracle)
- 面向企业的Net框架开发与Oracle集成(net框架oracle)
- Net调用MySQL技术实践(.net 调用mysql)
- 型使用NET与MySQL开发动态类型Web应用程序(.net mysql 类)
- Oracle Net服务重新上线,确保数据安全(oracle net重启)
- Asp.net中防止用户多次登录的方法
- asp.net结合mysql存储过程进行分页代码
- asp.net实现防迅雷等下载工具盗链
- ASP.NET生成静态页面实现思路
- asp.net结合aspnetpager使用SQL2005的存储过程分页
- ASP.NET在上传文件时对文件类型的高级判断的代码
- win2003服务器asp.net权限设置问题及解决方法
- ASP.NET获取真正的客户端IP地址的6种方法
- Asp.net简单代码设置GridView自适应列宽不变形实现思路与代码
- asp.net实现的计算网页下载速度的代码
- asp.net利用存储过程实现模糊查询示例分享
- ASP.NET单选按钮控件RadioButton常用属性和方法介绍