日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...

發布時間:2025/3/8 数据库 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

MS SQL自定義函數IsPositiveInteger

判斷字符串是否為正整數,0開始的的數字不算。

?

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GOCREATE FUNCTION [dbo].[svf_IsPositiveInteger] (@string NVARCHAR(MAX) ) RETURNS BIT --函數返BIT數據類型,是數字返回1,非數字返回0。 AS BEGINDECLARE @rtv BIT = 1 DECLARE @str NVARCHAR(MAX) = LTRIM(RTRIM(ISNULL(@string,''))) --去除前后空格,如果為NULL轉為''IF ASCII(SUBSTRING(@str, 1, 1)) = 48 --如果字符串第一位為0BEGINSET @rtv = 0 --直接判斷為非正整數ENDELSEBEGINDECLARE @start INT = 1; DECLARE @end INT = LEN(@str) --獲取字符串長度WHILE (@start <= @end) --循環字符串每一個字符BEGINDECLARE @Numeric VARCHAR(1) = ''SET @Numeric = SUBSTRING(@str, @start, @start + 1) -- 每循環一次從左邊獲取一位字符IF ASCII(@Numeric) >= 48 AND ASCII(@Numeric) <= 57 --如果是數字BEGINSET @start = @start + 1;CONTINUE --繼續循環 ENDELSEBEGINSET @rtv = 0BREAK --跳出循環ENDENDENDRETURN @rtv END

?

列舉例子說明:

CREATE TABLE [dbo].[uTstTable] ([col1] NVARCHAR(20),[col2] NVARCHAR(20),[col3] NVARCHAR(20),[col4] NVARCHAR(20),[col5] NVARCHAR(20),[col6] NVARCHAR(20),[col7] NVARCHAR(20)) GOINSERT INTO [dbo].[uTstTable] ([col1],[col2],[col3],[col4],[col5],[col6],[col7]) VALUES ('0.65','000435','SF46DG','3800','$54KQ','-0034','-855.4') GOSELECT [dbo].[svf_IsPositiveInteger] ([col1]) AS [col1], [dbo].[svf_IsPositiveInteger] ([col2]) AS [col2], [dbo].[svf_IsPositiveInteger] ([col3]) AS [col3], [dbo].[svf_IsPositiveInteger] ([col4]) AS [col4], [dbo].[svf_IsPositiveInteger] ([col5]) AS [col5], [dbo].[svf_IsPositiveInteger] ([col6]) AS [col6], [dbo].[svf_IsPositiveInteger] ([col7]) AS [col7] FROM [dbo].[uTstTable] GO

?

?

MS SQL自定義函數IsNumeric

判斷字符串是否為純數字,負數不算。如'00012','54585','1000'

?

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION [dbo].[svf_IsNumeric] (@string NVARCHAR(MAX) ) RETURNS BIT --函數返BIT數據類型,是數字返回1,非數字返回0。 AS BEGINDECLARE @rtv BIT = 1 DECLARE @str NVARCHAR(MAX) = LTRIM(RTRIM(ISNULL(@string,''))) --去除前后空格,如果為NULL轉為''DECLARE @start INT = 1; DECLARE @end INT = LEN(@str) --獲取字符串長度WHILE (@start <= @end) --循環字符串每一個字符BEGINDECLARE @Numeric VARCHAR(1) = ''SET @Numeric = SUBSTRING(@str, @start, @start + 1) -- 每循環一次,從左邊獲取一位字符IF ASCII(@Numeric) >= 48 AND ASCII(@Numeric) <= 57 --如果是數字BEGINSET @start = @start + 1;CONTINUE --繼續循環 ENDELSEBEGINSET @rtv = 0BREAK --跳出循環ENDENDRETURN @rtv END

?

創建一個例子來演示:

?

CREATE TABLE [dbo].[uTable] ([col1] NVARCHAR(20),[col2] NVARCHAR(20),[col3] NVARCHAR(20),[col4] NVARCHAR(20),[col5] NVARCHAR(20),[col6] NVARCHAR(20),[col7] NVARCHAR(20)) GOINSERT INTO [dbo].[uTable] ([col1],[col2],[col3],[col4],[col5],[col6],[col7]) VALUES ('0.455','000435','SF46DG','4000','$%9KJ','-0034','-8554') GOSELECT [dbo].[svf_IsNumeric] ([col1]) AS [col1], [dbo].[svf_IsNumeric] ([col2]) AS [col2], [dbo].[svf_IsNumeric] ([col3]) AS [col3], [dbo].[svf_IsNumeric] ([col4]) AS [col4], [dbo].[svf_IsNumeric] ([col5]) AS [col5], [dbo].[svf_IsNumeric] ([col6]) AS [col6], [dbo].[svf_IsNumeric] ([col7]) AS [col7] FROM [dbo].[uTable] GO

?

?

?

水晶報表使用IEnumerable<T>數據源

這篇我們學習水晶報表,報表呈現的數據源是IEnumerable<T>。比如下面的數據:

?

using System; using System.Collections.Generic; using System.Linq; using System.Web; using Insus.NET.Models;namespace Insus.NET.Entities {public class MachineEntity{public IEnumerable<Machine> Machines(){return new List<Machine>(){{ new Machine() {Key =1,ModelNumber ="TC03Q",Brand ="QT",ManufactureDate = Convert.ToDateTime("2008/12/31")}},{ new Machine() {Key =2,ModelNumber ="MH26U",Brand ="HW",ManufactureDate = Convert.ToDateTime("2012/03/09")}},{ new Machine() {Key =3,ModelNumber ="DW569",Brand ="XM",ManufactureDate = Convert.ToDateTime("2015/07/25")}}};}} }

?

新建水晶報表:

?

?

?

?

?

?

按Next銨鈕,略過Group By。

?

銨Next銨鈕,略過Filter Fields。

?

?

報表創建OK。

?

根據這篇《ASP.NET MVC項目實現BasePage基類用作ASPX.CS網頁繼承》https://www.cnblogs.com/insus/p/9865023.html

我們還得在BasePage基類中,重載另一個方法:

?

在.aspx.cs網頁中,就可以使用上面的方法:

?

?

程序運行:

?

學習完畢。

希望對你有所幫助。

總結

以上是生活随笔為你收集整理的MS SQL自定义函数IsPositiveInteger MS SQL自定义函数IsNumeric 水晶报表使用IEnumerableT数据源...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。