程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 讓存儲過程與拼sql語句具有一樣的靈活性

讓存儲過程與拼sql語句具有一樣的靈活性

編輯:關於SqlServer

關鍵字:C#,ASP.Net,SQL Server 2005,存儲過程,sql語句

遇到一個問題,在csdn中各位大蝦的幫助下,終於解決了。

http://topic.csdn.Net/u/20071020/14/a3c1ec2e-3592-4ec5-9f16-38f11e178925.Html?1064326859

下面的總結,摘取了csdn各位大蝦的思想。

特總結一下:

以前在asp時代,最常見的訪問數據庫的方式就是在ASP頁面中拼sql,然後訪問數據庫(我目前就是使用這種方式)。而現在一般在ASP.Net開發中。要大量使用存儲過程訪問數據庫。使用存儲過程的好處不言而喻。下面就對比一下靈活使用變量的存儲過程與以往的拼sql語句的方式。

表結構:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[t_student](
[id] [int] NOT NULL,
[name] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[age] [int] NULL,
[address] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 CONSTRAINT [PK_t_student] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

數據:
INSERT INTO [dbo].[t_student] ([id],[name],[age],[address]) VALUES(1, 'tom ',12, '北京市海澱區 ')
INSERT INTO [dbo].[t_student] ([id],[name],[age],[address]) VALUES(2, 'jim ',40, '上海 ')
INSERT INTO [dbo].[t_student] ([id],[name],[age],[address]) VALUES(3, 'roles ',10, 'beijing ')

需求:從數據庫中查詢數據的時候可以輸入查詢條件,也可以不輸入任何查詢條件。

以前的開發模式:

一般的情況下在代碼拼sql語句取得數據的話,可以靈活的實現:     
string strsql = " select * from t_student where 1=1 ";
if(id != null)

 strsql =  strsql + " AND id=  '" + id + " '" ;
if(name != null)
 strsql =  strsql + " AND name=  '" + name + " '" ;
if(age != null)
 strsql = strsql + " and age = " + age ; 
if(address != null)
 strsql&n

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved