在ASP.NET中用存储过程执行SQL语句

存储过程执行效率比单独的SQL语句效率高。
样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下。
比如,创建一个存储过程


代码如下:

create procedure procNewsSelectNewNews
as
begin
select top 10 n.id,n.title,n.createTime,c.name from news n
inner join category c on n.caId=c.id
order by n.createTime desc
end

执行定义好的存储过程
exec procNewsSelectNewNews
存储过程返回的是一张表


代码如下:

public DataTable test(string procName)
{
DataTable dt=new DataTable();
cmd=new SqlCommand(procName,GetConn()); //数据库连接和连接开闭,都放在了GetConn()方法中
cmd.CommandType=CommandType.StoredProcedure; //定义SQL语句命令类型为存储过程
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection));//方法将SQL语句发送给SqlConnection并生产一个SqlDataReader类对象,该SqlDataReader对象包含SQL命令返回的数据
{ dt.Load(sdr); //load查询dataread查询的结果 }
return dt;
}

当一个项目中既要用到SQL语句又要用到存储过程的时候,而执行SQL语句和执行存储过程的方法都差不多,就是相差一个CommandType类型,所以如果有这样的情况,我们可以重构关于SQL语句和存储过程这两个方法


代码如下:

public DataTable ExecuteQuery(string sqlText,CommandType ct); //不仅传入SQL语句还传入一个命令类型
{
DataTable dt=new DataTable();
cmd=new SqlCommand(sqlText,GetConn());
cmd.CommandType=ct;
using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
{ dt.Load(sdr);}
return dt;
}

查询方法写好之后,就可以写SQL语句或存储过程的方法了
比如:存储过程


代码如下:

public DataTable SelectNewNews()
{
return sqlhelper.ExecuteQuery(“存储过程名”,CommandType.StoredProcedure)
}

SQL语句


代码如下:

public DataTable SelectAll()
{
DataTable dt=new DataTable();
string sql=”select * from news”;
dt=sqlhelper.ExecuteQuery(sql,CommandType.Text);·
return dt
}

(0)

相关推荐

  • .Net下二进制形式的文件(图片)的存储与读取详细解析

    .Net下图片的常见存储与读取凡是有以下几种:存储图片:以二进制的形式存储图片时,要把数据库中的字段设置为Image数据类型(SQL Server),存储的数据是Byte[]. 1.参数是图片路径:返回Byte[]类型: 复制代码 代码如下: public byte[] GetPictureData(string imagepath)        {            ////根据图片文件的路径使用文件流打开,并保存为byte[]               FileStream fs =

  • asp.net 结合mysql存储过程进行分页代码

    不过在网上找了一些,发现都有一个特点--就是不能传出总记录数,干脆自己研究吧.终于,算是搞出来了,效率可能不是很好,但是我也觉得不错了.贴代码吧直接:也算是对自己学习mysql的一个记录. 复制代码 代码如下: CREATE PROCEDURE p_pageList ( m_pageNo int , m_perPageCnt int , m_column varchar(1000) , m_table varchar(1000) , m_condition varchar(1000), m_or

  • asp.net sql存储过程

    Visual Studio.Net为SQL的存储过程提供了强大的支持,您既可以通过visual studio.net来新建存储过程,也可以直接在Sql Server的查询分析器中运行,还可以通过企业管理器创建,使用起来也非常方便.大家一直都误认为SQL存储过程是一个比较"高深"的技术,其实掌握一般的语法是没有什么大问题的,而我们在使用存储教程中也主要是增删减的操作,学会使用一般的T-SQL就很容易上手了. 我们先来看一下在Sql-server中是如何创建一个存储过程的吧,我们可以使用S

  • asp.net安全、实用、简单的大容量存储过程分页第1/2页

    基本上我下面要讲述的侧重点是如何使用,因为其实分页存储过程网上很多,如果你懒得找,那么可以直接使用下面这个我经过测试,并通过修改,网上评价都比较高的分页存储过程. 这个分页主要优点如下: 1.大容量下的数据分页,我的测试数据是520W. 2.我结合aspnetpager控件,使得使用起来更加方便. 3.为了结构清晰,实用3层. 4.安全,你就放心的用吧.SQL注入的问题在这里你可以放心了.网上有文章说只要存储过程是用sql拼接的就存在sql注入的问题,并且直接在sql查询分析器中测试了注入的情况

  • asp.net 存储过程调用

    1.调用存储过程,但无返回值 复制代码 代码如下: Private Function SqlProc1(ByVal ProcName As String) As Boolean '定义数据链接部分省略, myConn为链接对象 ProcName为存储过程名 Dim myCommand As New SqlClient.SqlCommand(ProcName, myConn) With myCommand .CommandType = CommandType.StoredProcedure .Pa

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

    连接字符串 复制代码 代码如下: string conn = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString; confige文件  复制代码 代码如下: <connectionStrings>        <add name="NorthwindConnectionString" connectionString="

  • ASP.NET Core Project.json文件(5)

    如果您的应用程序要做任何有用的工作,然后你需要库和框架来完成工作,这种存储和检索数据从一个数据库或呈现复杂的HTML. 在这一章,我们将讨论 project.json 文件.此文件使用 JavaScript 对象符号来存储配置信息,它是.NET 应用程序的核心.如果没有这个文件,你的项目就不会一个 ASP.NET Core项目.在这里,我们将讨论这个文件的一些最重要的特征.让我们双击 project.json 文件打开它. 目前,新建的项目中默认实现的project.json文件代码如下: {

  • 在ASP.NET中用存储过程执行SQL语句

    存储过程执行效率比单独的SQL语句效率高. 样编写存储过程?存储过程在SQL Server 2005对应数据库的可编程性目录下. 比如,创建一个存储过程 复制代码 代码如下: create procedure procNewsSelectNewNews as begin select top 10 n.id,n.title,n.createTime,c.name from news n inner join category c on n.caId=c.id order by n.createT

  • Entity Framework Core中执行SQL语句和存储过程的方法介绍

    无论ORM有多么强大,总会出现一些特殊的情况,它无法满足我们的要求.在这篇文章中,我们介绍几种执行SQL的方法. 表结构 在具体内容开始之前,我们先简单说明一下要使用的表结构. public class Category { public int CategoryID { get; set; } public string CategoryName { get; set; } } 在Category定义了两个字段:CategoryID.CategoryName. public class Sam

  • ASP中经常使用的SQL语句与教程说明

    1,SELECT 语句  在SQL的世界里,最最基础的操作就是SELECT 语句了.在数据库工具下直接采用SQL的时候很多人都会熟悉下面的操作: 复制代码 代码如下: SELECT what FROM whichTable WHERE criteria 执行以上语句就会创建一个存放其结果的查询.  而在ASP页面文件上,你也可以采用以上的一般语法,不过情况稍微不同,ASP编程的时候,ELECT 语句的内容要作为字符串赋给一个变量: 复制代码 代码如下: SQL = "SELECT what FR

  • SQLServer 2000定时执行SQL语句

    我不知道存储过程等能否实现,但是SQL Server 2000的作业调度确实有这样的功能,怎样使某些SQL语句定时执行呢,依次进行下面的操作: 企业管理器 --管理 --SQL Server代理 --右键作业 --新建作业 --"常规"项中输入作业名称 --"步骤"项 --新建 --"步骤名"中输入步骤名 --"类型"中选择"Transact-SQL 脚本(TSQL)" --"数据库"选

  • 使用BAT批处理执行sql语句的代码

    1.把待执行Sql保存在一个文件,这里为20110224.sql.2.新建一个扩展名.bat的批处理文件,输入下面命令并保存后,双击.bat文件,系统会自动执行20110224.sql的语句: 复制代码 代码如下: osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql osql参数见下面=======================================================================: E:\>osql

  • C#实现连接SQL Server2012数据库并执行SQL语句的方法

    本文实例讲述了C#实现连接SQL Server2012数据库并执行SQL语句的方法.分享给大家供大家参考,具体如下: 开发工具:Visual Studio 2012 数据库: SQL Server 2012 使用Visual Studio时还是直接和微软自家的SQL Server数据库连接比较方便,就像使用Eclipse时和MySQL连接便捷一样的道理 无论使用什么工具步骤都一样: 1. 首先保证相关工具都已经正确安装了 2. 开启数据库连接服务 3. 在开发工具中通过用户名和口令与数据库进行关

  • Oracle批量执行sql语句之禁用所有表的外键

    在转移数据库,进行数据导入的时候,遇到一件麻烦事,就是表间外键约束的存在,导致insert频频报错,批量执行sql语句又是顺序执行,没办法我只好手动输入. 然后输入到一半灵光一闪,为什么不先把外键约束全部禁用先呢? 于是我百度到以下资料: oracle 删除(所有)约束 禁用(所有)约束 启用(所有)约束 执行以下sql生成的语句即可 1删除所有外键约束 select 'alter table '||table_name||' drop constraint '||constraint_name

  • .Net core下直接执行SQL语句并生成DataTable的实现方法

    .net core可以执行SQL语句,但是只能生成强类型的返回结果.例如var blogs = context.Blogs.FromSql("SELECT * FROM dbo.Blogs").ToList().而不允许返回DataSet.DataTable等弱类型.可能由于这个原因没有实现在.net core中DataTable,然而DataTable还是可能会用到的.我们这里就有一个数据仓库的需求,允许用户自行编写类似SQL语句,然后执行,以表格展示.因为语句是千变万化的,因此我也

  • Yii调试查看执行SQL语句的方法

    本文实例讲述了Yii调试查看执行SQL语句的方法.分享给大家供大家参考,具体如下: 开户debug 修改配置文件 :protected/config/main.php, 'log' => array( 'class' => 'CLogRouter', 'routes' => array( array( 'class' => 'CFileLogRoute', 'levels' => 'trace, info, error, warning', ), // uncomment t

  • 在MySQL数据库中使用C执行SQL语句的方法

    他们将讨论返回数据的语句,例如INSERT以及不返回数据的语句,例如UPDATE和DELETE.然后,他们将编写从数据库检索数据的简单程序 执行SQL语句 现在,我们已经有了一个连接,并且知道如何处理错误,是时候讨论使用我们的数据库来作一些实际工作了.执行所有类型的SQL的主关键字是mysql_query: int mysql_query(MYSQL *connection, const char *query) 正如您所见,它非常简单.它取一个指向连接结构的指针和包含要执行的SQL的文本字符串

随机推荐