關鍵字: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