程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C# 3.0入門系列(十一)-之In, Like操作(2)

C# 3.0入門系列(十一)-之In, Like操作(2)

編輯:關於C語言

上面的%是通配符,表示,該字段含有某個值,不知道的位置使用%代替。第一個是表示中間一段是AD,兩頭不清楚。第二個是結尾是AD,前面的不清楚。第三個相反,開頭是AD,結尾不清楚。其對應的Linq 語句為

var q = (from c in db.Customers
where c.CustomerID.Contains("ROUT")
select c).ToList();

其生成的sql為

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactT
itle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Coun
try], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERE [t0].[CustomerID] LIKE @p0
-- @p0: Input String (Size = 6; Prec = 0; Scale = 0) [%ROUT%]

以ISSA結尾,頭部通配:

var q = (from c in db.Customers
where c.CustomerID.EndsWith("ISSA")
select c).ToList();

其生成的sql為

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactT
itle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Coun
try], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERE [t0].[CustomerID] LIKE @p0
-- @p0: Input String (Size = 5; Prec = 0; Scale = 0) [%ISSA]

以ARO開始,尾部通配:

var q = (from c in db.Customers
where c.CustomerID.StartsWith("ARO")
select c).ToList();

其生成的sql為

SELECT [t0].[CustomerID], [t0].[CompanyName], [t0].[ContactName], [t0].[ContactT
itle], [t0].[Address], [t0].[City], [t0].[Region], [t0].[PostalCode], [t0].[Coun
try], [t0].[Phone], [t0].[Fax]
FROM [dbo].[Customers] AS [t0]
WHERE [t0].[CustomerID] LIKE @p0
-- @p0: Input String (Size = 4; Prec = 0; Scale = 0) [ARO%]

Linq 還提供了一種方法,叫做SqlMethods.Like,需要先添加System.Data.Linq.SqlClIEnt名稱空間。上面的三個可以寫成

var q = (from c in db.Customers
where SqlMethods.Like(c.CustomerID, "%ROUT%")
select c).ToList();

這裡,你需要自己填寫通配符,告訴Linq你是如何匹配。比如

var q = (from c in db.Customers
where SqlMethods.Like(c.CustomerID, "%ISSA")
select c).ToList();

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