Archive for the ‘ASP.NET’ Category

How to convert from string to datetime in sql server?


2010
05.06

Execute the following T-SQL scripts in Microsoft SQL Server Manangement Studio Query Editor to demonstrate T-SQL convert and cast functions in transforming string date, string time & string datetime data to datetime data type. Other datetime manipulation examples are presented as well.

– Microsoft SQL Server string to date conversion – datetime string format sql server

– MSSQL string to datetime conversion – convert char to date sql server

– Subtract 100 from style number (format) for yy instead yyyy (or ccyy with century)

SELECT convert(datetime, ’Oct 23 2012 11:01AM’, 100) – mon dd yyyy hh:mmAM (or PM)

SELECT convert(datetime, ’Oct 23 2012 11:01AM’) – 2012-10-23 11:01:00.000

– Without century (yy) string date conversion – convert string to datetime

SELECT convert(datetime, ’Oct 23 12 11:01AM’,     0) – mon dd yy hh:mmAM (or PM)

SELECT convert(datetime, ’Oct 23 12 11:01AM’) – 2012-10-23 11:01:00.000

– Convert string to datetime sql – convert string to date sql - sql dates format

– T-SQL convert string to datetime – SQL Server convert string to date

SELECT convert(datetime, ’10/23/2016′,          101) – mm/dd/yyyy

SELECT convert(datetime, ’2016.10.23′,          102) – yyyy.mm.dd

SELECT convert(datetime, ’23/10/2016′,          103) – dd/mm/yyyy

SELECT convert(datetime, ’23.10.2016′,          104) – dd.mm.yyyy

SELECT convert(datetime, ’23-10-2016′,          105) – dd-mm-yyyy

– mon types are nondeterministic conversions, dependent on language setting

SELECT convert(datetime, ’23 OCT 2016′,         106) – dd mon yyyy

SELECT convert(datetime, ’Oct 23, 2016′,        107) – mon dd, yyyy

– 2016-10-23 00:00:00.000

SELECT convert(datetime, ’20:10:44′,            108) – hh:mm:ss

– 1900-01-01 20:10:44.000

– mon dd yyyy hh:mm:ss:mmmAM (or PM) – sql time format

SELECT convert(datetime, ’Oct 23 2016 11:02:44:013AM’, 109)

– 2016-10-23 11:02:44.013

SELECT convert(datetime, ’10-23-2016′,          110) – mm-dd-yyyy

SELECT convert(datetime, ’2016/10/23′,          111) – yyyy/mm/dd

SELECT convert(datetime, ’20161023′,            112) – yyyymmdd

– 2016-10-23 00:00:00.000

SELECT convert(datetime, ’23 Oct 2016 11:02:07:577′, 113) – dd mon yyyy hh:mm:ss:mmm

– 2016-10-23 11:02:07.577

SELECT convert(datetime, ’20:10:25:300′,             114) – hh:mm:ss:mmm(24h)

– 1900-01-01 20:10:25.300

SELECT convert(datetime, ’2016-10-23 20:44:11′,      120) – yyyy-mm-dd hh:mm:ss(24h)

– 2016-10-23 20:44:11.000

SELECT convert(datetime, ’2016-10-23 20:44:11.500′,  121) – yyyy-mm-dd hh:mm:ss.mmm

– 2016-10-23 20:44:11.500

SELECT convert(datetime, ’2008-10-23T18:52:47.513′,  126) – yyyy-mm-ddThh:mm:ss.mmm

– 2008-10-23 18:52:47.513
– Convert DDMMYYYY format to datetime

SELECT convert(datetime, STUFF(STUFF(’31012016′,3,0,’-'),6,0,’-'), 105)

– 2016-01-31 00:00:00.000

– SQL string to datetime conversion without century – some exceptions

SELECT convert(datetime, ’10/23/16′,          1)                  – mm/dd/yy

SELECT convert(datetime, ’16.10.23′,          2)                  – yy.mm.dd

SELECT convert(datetime, ’23/10/16′,          3)                  – dd/mm/yy

SELECT convert(datetime, ’23.10.16′,          4)                  – dd.mm.yy

SELECT convert(datetime, ’23-10-16′,          5)                  – dd-mm-yy

SELECT convert(datetime, ’23 OCT 16′,         6)                  – dd mon yy

SELECT convert(datetime, ’Oct 23, 16′,        7)                  – mon dd, yy

SELECT convert(datetime, ’20:10:44′,          8)                  – hh:mm:ss

SELECT convert(datetime, ’Oct 23 16 11:02:44:013AM’, 9)

SELECT convert(datetime, ’10-23-16′,          10)                 – mm-dd-yy

SELECT convert(datetime, ’16/10/23′,          11)                 – yy/mm/dd

SELECT convert(datetime, ’161023′,            12)                 – yymmdd

SELECT convert(datetime, ’23 Oct 16 11:02:07:577′, 13)        – dd mon yy hh:mm:ss:mmm

SELECT convert(datetime, ’20:10:25:300′,        14)           – hh:mm:ss:mmm(24h)

SELECT convert(datetime, ’2016-10-23 20:44:11′,20)            – yyyy-mm-dd hh:mm:ss(24h)

SELECT convert(datetime, ’2016-10-23 20:44:11.500′, 21)       – yyyy-mm-dd hh:mm:ss.mmm

————

– SQL Datetime Data Type: Combine date & time string into datetime – sql hh mm ss

– String to datetime – mssql datetime – sql convert date – sql concatenate string

DECLARE @DateTimeValue varchar(32), @DateValue char(8), @TimeValue char(6)

SELECT      @DateValue = ’20120718′,

@TimeValue = ’211920′

SELECT @DateTimeValue =

convert(varchar, convert(datetime, @DateValue), 111)

+ ’ ‘ + substring(@TimeValue, 1, 2)

+ ’:' + substring(@TimeValue, 3, 2)

+ ’:' + substring(@TimeValue, 5, 2)

SELECT

DateInput = @DateValue,

TimeInput = @TimeValue,

DateTimeOutput = @DateTimeValue;

/*

DateInput   TimeInput   DateTimeOutput

20120718    211920      2012/07/18 21:19:20

*/

– SQL convert seconds to HH:MM:SS – sql times format – sql hh mm

DECLARE  @Seconds INT

SET @Seconds = 20000

SELECT HH =  @Seconds / 3600,

MM = (@Seconds%3600) / 60,

SS = (@Seconds%60)

GO

/*

HH    MM    SS

5     33    20

*/
————

– SQL Server 2008 convert datetime to date – sql yyyy mm dd

SELECT      TOP (3)

OrderDate = CONVERT(date, OrderDate),

Today = CONVERT(date, getdate())

FROM AdventureWorks2008.Sales.SalesOrderHeader

ORDER BY newid();

/*          OrderDate   Today

2003-07-09  2012-06-18

2003-09-26  2012-06-18

2004-02-15  2012-06-18 */

————

– SQL date yyyy mm dd – sqlserver yyyy mm dd – date format yyyymmdd

SELECT CONVERT(VARCHAR(10), GETDATE(), 111) AS [YYYY/MM/DD]

/*  YYYY/MM/DD

2015/07/11    */

SELECT CONVERT(VARCHAR(10), GETDATE(), 112) AS [YYYYMMDD]

/*  YYYYMMDD

20150711     */

SELECT REPLACE(CONVERT(VARCHAR(10), GETDATE(), 111),’/',’ ‘) AS [YYYY MM DD]

/* YYYY MM DD

2015 07 11    */

————

– SQL convert date string to datetime – time set to 00:00:00.000 or 12:00AM

PRINT CONVERT(datetime,’07-10-2012′,110)        – Jul 10 2012 12:00AM

PRINT CONVERT(datetime,’2012/07/10′,111)        – Jul 10 2012 12:00AM

PRINT CONVERT(datetime,’20120710′,  112)        – Jul 10 2012 12:00AM

————

– String to date conversion – sql date yyyy mm dd – sql date formatting

– SQL Server cast string to date – sql convert date to datetime

SELECT [Date] = CAST (@DateValue AS datetime)

GO

– 2012-07-18 00:00:00.000

– SQL convert string date to different style – sql date string formatting

SELECT CONVERT(varchar, CONVERT(datetime, ’20140508′), 100)

– May  8 2014 12:00AM

– SQL Server convert date to integer

DECLARE @Date datetime

SET @Date = getdate()

SELECT DateAsInteger = CAST (CONVERT(varchar,@Date,112) as INT)

– Result: 20161225

– SQL Server convert integer to datetime

DECLARE @iDate int

SET @iDate = 20151225

SELECT IntegerToDatetime = CAST(convert(varchar,@iDate) as datetime)

GO
– 2015-12-25 00:00:00.000

– Alternates: date-only datetime values

– SQL Server floor date – sql convert datetime

SELECT [DATE-ONLY]=CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, GETDATE())))

SELECT [DATE-ONLY]=CONVERT(DATETIME, FLOOR(CONVERT(MONEY, GETDATE())))

– SQL Server cast string to datetime

– SQL Server datetime to string convert

SELECT [DATE-ONLY]=CAST(CONVERT(varchar, GETDATE(), 101) AS DATETIME)

– SQL Server dateadd function - T-SQL datediff function

– SQL strip time from date - MSSQL strip time from datetime

SELECT getdate() ,DATEADD(dd, DATEDIFF(dd, 0, getdate()), 0)

– Results: 2016-01-23 05:35:52.793 2016-01-23 00:00:00.000

– String date  – 10 bytes of storage

SELECT [STRING DATE]=CONVERT(varchar,  GETDATE(), 110)

SELECT [STRING DATE]=CONVERT(varchar,  CURRENT_TIMESTAMP, 110)

– Same results: 01-02-2012

– SQL Server cast datetime as string – sql datetime formatting

SELECT stringDateTime=CAST (getdate() as varchar)

–Result: Dec 29 2012  3:47AM

———-

– SQL date range between

———-

– SQL date range select – date range search

– T-SQL date range query – sql date ranges

– Count Sales Orders for 2003 OCT-NOV

DECLARE  @StartDate DATETIME,  @EndDate DATETIME

SET @StartDate = convert(DATETIME,’10/01/2003′,101)

SET @EndDate   = convert(DATETIME,’11/30/2003′,101)

SELECT @StartDate, @EndDate

– 2003-10-01 00:00:00.000  2003-11-30 00:00:00.000

SELECT DATEADD(DAY,1,@EndDate),

DATEADD(ms,-3,DATEADD(DAY,1,@EndDate))

– 2003-12-01 00:00:00.000  2003-11-30 23:59:59.997

– MSSQL date range select using >= and <

SELECT [Sales Orders for 2003 OCT-NOV] = COUNT(* )

FROM   Sales.SalesOrderHeader

WHERE  OrderDate >= @StartDate

AND OrderDate < DATEADD(DAY,1,@EndDate)

/*

Sales Orders for 2003 OCT-NOV

3668

*/

– Equivalent date range query using BETWEEN comparison

– It requires a bit of trick programming

SELECT [Sales Orders for 2003 OCT-NOV] = COUNT(* )

FROM   Sales.SalesOrderHeader

WHERE  OrderDate BETWEEN @StartDate AND DATEADD(ms,-3,DATEADD(DAY,1,@EndDate))

– 3668

GO

USE AdventureWorks;

– SQL between string dates

SELECT POs=COUNT(*) FROM Purchasing.PurchaseOrderHeader

WHERE OrderDate BETWEEN ’20040201′ AND ’20040210′

– Result: 108

– BETWEEN is equivalent to >=…AND….<=

SELECT POs=COUNT(*) FROM Purchasing.PurchaseOrderHeader

WHERE OrderDate

BETWEEN ’2004-02-01 00:00:00.000′ AND ’2004-02-10  00:00:00.000′

/*

Orders with OrderDates

’2004-02-10  00:00:01.000′  – 1 second after midnight (12:00AM)

’2004-02-10  00:01:00.000′  – 1 minute after midnight

’2004-02-10  01:00:00.000′  – 1 hour after midnight

are not included in the two queries above.

*/

– To include the entire day of 2004-02-10 use:

SELECT POs=COUNT(*) FROM Purchasing.PurchaseOrderHeader

WHERE OrderDate >= ’20040201′ AND OrderDate < ’20040211′

———-

– Date validation function ISDATE – returns 1 or 0

– SQL datetime functions

————

DECLARE @StringDate varchar(32)

SET @StringDate = ’2011-03-15 18:50′

IF EXISTS( SELECT * WHERE ISDATE(@StringDate) = 1)

PRINT ’VALID DATE: ‘ + @StringDate

ELSE

PRINT ’INVALID DATE: ‘ + @StringDate

GO

– Result: VALID DATE: 2011-03-15 18:50

DECLARE @StringDate varchar(32)

SET @StringDate = ’20112-03-15 18:50′

IF EXISTS( SELECT * WHERE ISDATE(@StringDate) = 1)

PRINT ’VALID DATE: ‘ + @StringDate

ELSE

PRINT ’INVALID DATE: ‘ + @StringDate

GO

– Result: INVALID DATE: 20112-03-15 18:50

– Selected named date styles
————

DECLARE @DateTimeValue varchar(32)

– US-Style

SELECT @DateTimeValue = ’10/23/2016′

SELECT StringDate=@DateTimeValue,

[US-Style] = CONVERT(datetime, @DatetimeValue)

SELECT @DateTimeValue = ’10/23/2016 23:01:05′

SELECT StringDate = @DateTimeValue,

[US-Style] = CONVERT(datetime, @DatetimeValue)

– UK-Style, British/French

– convert string to datetime sql

– sql convert string to datetime

SELECT @DateTimeValue = ’23/10/16 23:01:05′

SELECT StringDate = @DateTimeValue,

[UK-Style] = CONVERT(datetime, @DatetimeValue, 3)

SELECT @DateTimeValue = ’23/10/2016 04:01 PM’

SELECT StringDate = @DateTimeValue,

[UK-Style] = CONVERT(datetime, @DatetimeValue, 103)

– German-Style

SELECT @DateTimeValue = ’23.10.16 23:01:05′

SELECT StringDate = @DateTimeValue,

[German-Style] = CONVERT(datetime, @DatetimeValue, 4)

SELECT @DateTimeValue = ’23.10.2016 04:01 PM’

SELECT StringDate = @DateTimeValue,

[German-Style] = CONVERT(datetime, @DatetimeValue, 104)

————

– Double conversion to US-Style 107 with century: Oct 23, 2016

SET @DateTimeValue=’10/23/16′

SELECT StringDate=@DateTimeValue,

[US-Style] = CONVERT(varchar, CONVERT(datetime, @DateTimeValue),107)

– Using DATEFORMAT – UK-Style

– SQL dateformat

SET @DateTimeValue=’23/10/16′

SET DATEFORMAT dmy

SELECT StringDate=@DateTimeValue,

[Date Time] = CONVERT(datetime, @DatetimeValue)

– Using DATEFORMAT – US-Style

SET DATEFORMAT mdy

– DATEPART datetime function example

– SQL Server datetime functions

SELECT * FROM Northwind.dbo.Orders

WHERE

DATEPART(YEAR, OrderDate) = ’1996′ AND

DATEPART(MONTH,OrderDate) = ’07′   AND

DATEPART(DAY, OrderDate)  = ’10′

– Alternate syntax for DATEPART example

SELECT * FROM Northwind.dbo.Orders

WHERE

YEAR(OrderDate)         = ’1996′ AND

MONTH(OrderDate)        = ’07′   AND

DAY(OrderDate)          = ’10′

GO

————

– Extract string date from text with PATINDEX pattern matching

– Apply sql server string to date conversion

————

USE tempdb;

go

CREATE TABLE InsiderTransaction (

InsiderTransactionID int identity primary key,

TradeDate datetime,

TradeMsg varchar(256),

ModifiedDate datetime default (getdate())

)

go

– Populate table with dummy data

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC Hammer, Bruce D. CSO 09-02-08 Buy 2,000 6.10′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC Schmidt, Steven CFO 08-25-08 Buy 2,500 6.70′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC  Hammer, Bruce D. CSO  08-20-08 Buy 3,000 8.59′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC Walters,  Jeff CTO 08-15-08  Sell 5,648 8.49′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN  QABC  Walters, Jeff CTO   08-15-08 Option Execute 5,648 2.15′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC Hammer, Bruce D. CSO 07-31-08  Buy 5,000 8.05′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC Lennot, Mark B. Director  08-31-07 Buy 1,500 9.97′)

INSERT InsiderTransaction (TradeMsg) VALUES(

‘INSIDER TRAN QABC  O”Neal, Linda COO  08-01-08 Sell 5,000 6.50′)

go

– Extract dates from stock trade message text

– Pattern match for MM-DD-YY using the PATINDEX string function

SELECT TradeDate=substring(TradeMsg,

patindex(‘%[01][0-9]-[0123][0-9]-[0-9][0-9]%’, TradeMsg),8)

FROM InsiderTransaction

WHERE  patindex(‘%[01][0-9]-[0123][0-9]-[0-9][0-9]%’, TradeMsg) > 0

/* Partial results

TradeDate

09-02-08

08-25-08

08-20-08

*/

– Update table with extracted date

– Convert string date to datetime

UPDATE InsiderTransaction

SET TradeDate = convert(datetime,  substring(TradeMsg,

patindex(‘%[01][0-9]-[0123][0-9]-[0-9][0-9]%’, TradeMsg),8))

WHERE  patindex(‘%[01][0-9]-[0123][0-9]-[0-9][0-9]%’, TradeMsg) > 0

SELECT * FROM InsiderTransaction ORDER BY TradeDate desc

/* Partial results

InsiderTransactionID    TradeDate   TradeMsg    ModifiedDate

1     2008-09-02 00:00:00.000 INSIDER TRAN QABC Hammer, Bruce D. CSO 09-02-08 Buy 2,000 6.10      2008-12-22 20:25:19.263

2     2008-08-25 00:00:00.000 INSIDER TRAN QABC Schmidt, Steven CFO 08-25-08 Buy 2,500 6.70      2008-12-22 20:25:19.263

3     2008-08-20 00:00:00.000 INSIDER TRAN QABC  Hammer, Bruce D. CSO  08-20-08 Buy 3,000 8.59  2008-12-22 20:25:19.263

*/

– Cleanup task

DROP TABLE InsiderTransaction

go

/************

VALID DATE RANGES FOR DATETIME DATA TYPES

SMALLDATETIME (4 bytes) date range:

January 1, 1900 through June 6, 2079

DATETIME (8 bytes) date range:

January 1, 1753 through December 31, 9999

– The statement below will give a date range error

SELECT CONVERT(smalldatetime, ’2110-01-01′)

/*

Msg 242, Level 16, State 3, Line 1

The conversion of a varchar data type to a smalldatetime data type

resulted in an out-of-range value.

*/

************/

————

– SQL CONVERT DATE/DATETIME script applying table variable

————

– SQL Server convert date

– Datetime column is converted into date only string column

DECLARE @sqlConvertDate TABLE ( DatetimeColumn datetime,

DateColumn char(10));

INSERT @sqlConvertDate(DatetimeColumn) SELECT GETDATE()

UPDATE @sqlConvertDate

SET DateColumn = CONVERT(char(10), DatetimeColumn, 111)

SELECT * FROM @sqlConvertDate

– SQL Server convert datetime

– The string date column is converted into datetime column

UPDATE @sqlConvertDate

SET DatetimeColumn = CONVERT(Datetime, DateColumn, 111)

SELECT * FROM @sqlConvertDate

– Equivalent formulation

– SQL Server cast datetime

UPDATE @sqlConvertDate

SET DatetimeColumn = CAST(DateColumn AS datetime)

SELECT * FROM @sqlConvertDate

GO

/* First results

DatetimeColumn                DateColumn

2012-12-25 15:54:10.363       2012/12/25 */

/* Second results:

DatetimeColumn                DateColumn

2012-12-25 00:00:00.000       2012/12/25  */

————

– SQL date sequence generation with DATEADD & table variable

– SQL Server cast datetime to string

– SQL Server insert default values method

DECLARE @Sequence table (Sequence int identity(1,1))

DECLARE @i int; SET @i = 0

WHILE ( @i < 500)

BEGIN

INSERT @Sequence DEFAULT VALUES

SET @i = @i + 1

END

SELECT DateSequence = CAST(DATEADD(day, Sequence,getdate()) AS varchar)

FROM @Sequence

GO

/* Partial results:

DateSequence

Dec 31 2008  3:02AM

Jan  1 2009  3:02AM

Jan  2 2009  3:02AM

Jan  3 2009  3:02AM

Jan  4 2009  3:02AM

Jan  5 2009  3:02AM

Jan  6 2009  3:02AM

Jan  7 2009  3:02AM

*/

————

————

– SQL Last Week calculations

————

– SQL last Friday

– Implied string to datetime conversions in DATEADD & DATEDIFF

DECLARE @BaseFriday CHAR(8), @LastFriday datetime, @LastMonday datetime

SET @BaseFriday = ’19000105′

SELECT @LastFriday = DATEADD(dd,

(DATEDIFF(dd, @BaseFriday, CURRENT_TIMESTAMP) / 7) * 7,

@BaseFriday)

SELECT [Last Friday] = @LastFriday

– Result: 2008-12-26 00:00:00.000

– SQL last Monday (last week’s Monday)

SELECT @LastMonday=DATEADD(dd,

(DATEDIFF(dd, @BaseFriday, CURRENT_TIMESTAMP) / 7) * 7 - 4,

@BaseFriday)

SELECT [Last Monday]= @LastMonday

– Result: 2008-12-22 00:00:00.000

– SQL last week – SUN – SAT

SELECT [Last Week] = CONVERT(varchar,dateadd(day, -1, @LastMonday), 101)+

‘ – ‘ +

CONVERT(varchar,dateadd(day, 1,  @LastFriday), 101)

– Result: 12/21/2008 – 12/27/2008

————

————

– SQL Last Date calculations

————

– Last day of prior month

– Last day of previous month

SELECT convert( varchar, dateadd(dd,-1,DATEADD(mm, DATEDIFF(mm,0,getdate()  ), 0)),101)

– 01/31/2019

– Last day of current month

SELECT convert( varchar, dateadd(dd,-1,DATEADD(mm, DATEDIFF(mm,0,getdate())+1, 0)),101)

– 02/28/2019

– Last day of prior quarter

– Last day of previous quarter

SELECT convert( varchar, dateadd(dd,-1,DATEADD(qq, DATEDIFF(qq,0,getdate()  ), 0)),101)

– 12/31/2018

– Last day of current quarter

– Last day of current quarter

SELECT convert( varchar, dateadd(dd,-1,DATEADD(qq, DATEDIFF(qq,0,getdate())+1, 0)),101)

– 03/31/2019

– Last day of prior year

– Last day of previous year

SELECT convert( varchar, dateadd(dd,-1,DATEADD(yy, DATEDIFF(yy,0,getdate()  ), 0)),101)

– 12/31/2018

– Last day of current year

SELECT convert( varchar, dateadd(dd,-1,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0)),101)

– 12/31/2019

GO
————

————

– SQL Server dateformat and language setting

————

– T-SQL set language

– String to date conversion

SET LANGUAGE us_english

SELECT CAST(’2018-03-15′ AS datetime)

– 2018-03-15 00:00:00.000

SET LANGUAGE british

SELECT CAST(’2018-03-15′ AS datetime)

/* Msg 242, Level 16, State 3, Line 2

The conversion of a varchar data type to a datetime data type resulted in

an out-of-range value.

*/

SELECT CAST(’2018-15-03′ AS datetime)

– 2018-03-15 00:00:00.000

SET LANGUAGE us_english

– SQL dateformat with language dependency

SELECT name, alias, dateformat

FROM sys.syslanguages

WHERE langid in(0,1,2,4,5,6,7,10,11,13,23,31)

GO

/*

name        alias             dateformat

us_english  English           mdy

Deutsch     German            dmy

Français    French            dmy

Dansk       Danish            dmy

Español     Spanish           dmy

Italiano    Italian           dmy

Nederlands  Dutch             dmy

Suomi       Finnish           dmy

Svenska     Swedish           ymd

magyar      Hungarian         ymd

British     British English   dmy

Arabic      Arabic            dmy

*/

————

Sql Server 中一个非常强大的日期格式化函数

Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM

Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06

Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16

Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06

Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06

Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06

Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06

Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06

Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46

Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM

Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06

Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16

Select CONVERT(varchar(100), GETDATE(), 12): 060516

Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937

Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967

Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47

Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157

Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM

Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250

Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM

Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006

Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16

Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006

Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006

Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006

Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006

Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006

Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49

Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM

Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006

Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16

Select CONVERT(varchar(100), GETDATE(), 112): 20060516

Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513

Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547

Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49

Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700

Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827

Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM

Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM

常用:

Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46

Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47

Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49

Select CONVERT(varchar(100), GETDATE(), 12): 060516

Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16

Share

ASP.NET程式中常用的33種程式碼


2010
04.13

September 8, 2006 ASP.NET程式中常用的33種程式碼
1. 打開新的視窗並傳送參數:
傳送參數:
response.write(“<script>window.open(’*.aspx?id=”+this.DropDownList1.SelectIndex+”&id1=”+…+”’)</script>”);
接收參數:
string a = Request.QueryString["id"];
string b = Request.QueryString["id1"];

2.為按鈕新增對話方塊
Button1.Attributes.Add(“onclick”,”return confirm(’確認?’)”);
button.attributes.add(“onclick”,”if(confirm(’are you sure…?’)){return
true;}else{return false;}”)
(小馬註:其實在ASP.NET 2.0已經有OnClientClick事件可以用了,程式碼的易讀性比用Attributes高,比較推薦使用)

3.刪除表格指定紀錄
int intEmpID = (int)MyDataGrid.DataKeys[e.Item.ItemIndex];
string deleteCmd = “DELETE from Employee where emp_id = ” + intEmpID.ToString()

4.刪除表格紀錄警告
private void DataGrid_ItemCreated(Object sender,DataGridItemEventArgs e)
{
 switch(e.Item.ItemType)
 {
  case ListItemType.Item :
  case ListItemType.AlternatingItem :
  case ListItemType.EditItem:
   TableCell myTableCell;
   myTableCell = e.Item.Cells[14];
   LinkButton myDeleteButton ;
   myDeleteButton = (LinkButton)myTableCell.Controls[0];
   myDeleteButton.Attributes.Add(“onclick”,”return confirm(’您是否確定要刪除這條資訊’);”);
   break;
  default:
   break;
 }
}

5.點擊表格行連結另一頁
private void grdCustomer_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 //點擊表格打開
 if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
  e.Item.Attributes.Add(“onclick”,”window.open(’Default.aspx?id=” +
e.Item.Cells[0].Text + “’);”);
}
雙擊表格連接到另一頁
在itemDataBind事件中
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 …
 e.item.Attributes.Add(“ondblclick”, “location.href=’../ShippedGrid.aspx?id=” +
OrderItemID + “’”);
}
雙擊表格另開新頁
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType ==
ListItemType.AlternatingItem)
{
 string OrderItemID =e.item.cells[1].Text;
 …
 e.item.Attributes.Add(“ondblclick”, “open(’../ShippedGrid.aspx?id=” +
OrderItemID + “’)”);
}

6.表格超連結列傳遞參數
<asp:HyperLinkColumn Target=”_blank” headertext=”ID號” DataTextField=”id”
NavigateUrl=”aaa.aspx?id=’
 <%# DataBinder.Eval(Container.DataItem, “數據欄位1″)%>’ & name=’<%#
DataBinder.Eval(Container.DataItem, “數據欄位2″)%>’ />

7.表格點擊改變顏色
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType ==
ListItemType.AlternatingItem)
{
 e.Item.Attributes.Add(“onclick”,”this.style.backgroundColor=’#99cc00’;
    this.style.color=’buttontext’;this.style.cursor=’default’;”);
}
寫在DataGrid的_ItemDataBound裏
if (e.Item.ItemType == ListItemType.Item ||e.Item.ItemType ==
ListItemType.AlternatingItem)
{
e.Item.Attributes.Add(“onmouseover”,”this.style.backgroundColor=’#99cc00’;
   this.style.color=’buttontext’;this.style.cursor=’default’;”);
e.Item.Attributes.Add(“onmouseout”,”this.style.backgroundColor=’’;this.style.color=’’;”);
}
8.關於日期格式
日期格式設定
DataFormatString=”{0:yyyy-MM-dd}”
我覺得應該在itembound事件中
e.items.cell["你的列"].text=DateTime.Parse(e.items.cell["你的列"].text.ToString(“yyyy-MM-dd”))
  
9.獲取錯誤資訊並到指定頁面
不要使用Response.Redirect,而應該使用Server.Transfer
  e.g
// in global.asax
protected void Application_Error(Object sender, EventArgs e) {
if (Server.GetLastError() is HttpUnhandledException)
Server.Transfer(“MyErrorPage.aspx”);
//其餘的非HttpUnhandledExceptionException交給ASP.NET自己處理就okay了 :)
}
  Redirect會導致post-back的產生從而丟失了錯誤資訊,所以頁面導向應該直接在伺服器端執行,這樣就可以在錯誤處理頁面得到出錯資訊並進行相應的處理
 

10.清空Cookie
Cookie.Expires=[DateTime];
Response.Cookies(“UserName”).Expires = 0

11.自定義Exception處理
//自定義Exception處理類別
using System;
using System.Diagnostics;
namespace MyAppException
{
 /// <summary>
 /// 從系統Exception類別ApplicationException繼承的應用程式Exception處理類別。
 /// 自動將Exception內容紀錄到Windows NT/2000的應用程式日誌
 /// </summary>
 public class AppException:System.ApplicationException
 {
  public AppException()
  {
   if (ApplicationConfiguration.EventLogEnabled)LogEvent(“出現一個未知錯誤。”);
  }
 public AppException(string message)
 {
  LogEvent(message);
 }
 public AppException(string message,Exception innerException)
 {
  LogEvent(message);
  if (innerException != null)
  {
   LogEvent(innerException.Message);
  }
 }
 //日誌紀錄類別
 using System;
 using System.Configuration;
 using System.Diagnostics;
 using System.IO;
 using System.Text;
 using System.Threading;
 namespace MyEventLog
 {
  /// <summary>
  /// 事件日誌紀錄類別,提供事件日誌紀錄支援
  /// <remarks>
  /// 定義了4個日誌紀錄方法 (error, warning, info, trace)
  /// </remarks>
  /// </summary>
  public class ApplicationLog
  {
   /// <summary>
   /// 將錯誤資訊紀錄到Win2000/NT事件日誌中
   /// <param name=”message”>需要紀錄的文件資訊</param>
   /// </summary>
   public static void WriteError(String message)
   {
    WriteLog(TraceLevel.Error, message);
   }
   /// <summary>
   /// 將警告資訊紀錄到Win2000/NT事件日誌中
   /// <param name=”message”>需要紀錄的文件資訊</param>
   /// </summary>

   public static void WriteWarning(String message)
   {
    WriteLog(TraceLevel.Warning, message);  
   }
   /// <summary>
   /// 將提示資訊紀錄到Win2000/NT事件日誌中
   /// <param name=”message”>需要紀錄的文件資訊</param>
   /// </summary>
   public static void WriteInfo(String message)
   {
    WriteLog(TraceLevel.Info, message);
   }
   /// <summary>
   /// 將Trace資訊紀錄到Win2000/NT事件日誌中
   /// <param name=”message”>需要紀錄的文件資訊</param>
   /// </summary>
   public static void WriteTrace(String message)
   {
    WriteLog(TraceLevel.Verbose, message);
   }

   /// <summary>
   /// 格式化紀錄到事件日誌的文件資訊格式
   /// <param name=”ex”>需要格式化的Exception物件</param>
   /// <param name=”catchInfo”>Exception資訊標題字串.</param>
   /// <retvalue>
   /// <para>格式後的Exception資訊字串,包括Exception內容和TraceStack.</para>
   /// </retvalue>
   /// </summary>
   public static String FormatException(Exception ex, String catchInfo)
   {
    StringBuilder strBuilder = new StringBuilder();
    if (catchInfo != String.Empty)
    {
     strBuilder.Append(catchInfo).Append(“rn”);
    }
    strBuilder.Append(ex.Message).Append(“rn”).Append(ex.StackTrace);
    return strBuilder.ToString();
   }
   /// <summary>
   /// 實際事件日誌寫入方法
   /// <param name=”level”>要紀錄資訊的級別(error,warning,info,trace).</param>
   /// <param name=”messageText”>要紀錄的文件.</param>
   /// </summary>
   private static void WriteLog(TraceLevel level, String messageText)
   {
    try
    {
     EventLogEntryType LogEntryType;
     switch (level)
     {
      case TraceLevel.Error:
       LogEntryType = EventLogEntryType.Error;
       break;
      case TraceLevel.Warning:
       LogEntryType = EventLogEntryType.Warning;
       break;
      case TraceLevel.Info:
       LogEntryType = EventLogEntryType.Information;
       break;
      case TraceLevel.Verbose:
       LogEntryType = EventLogEntryType.SuccessAudit;
       break;
      default:
       LogEntryType = EventLogEntryType.SuccessAudit;
       break;
     }
     EventLog eventLog = new EventLog(“Application”,
ApplicationConfiguration.EventLogMachineName,
ApplicationConfiguration.EventLogSourceName );
     //寫入事件日誌
     eventLog.WriteEntry(messageText, LogEntryType);
    }
   catch {} //忽略任何Exception
  }
 } //class ApplicationLog
}

12.Panel 橫向捲軸,縱向自動擴展
<asp:panel style=”overflow-x:scroll;overflow-y:auto;”></asp:panel>
  
13.回車轉換成Tab
<script language=”javascript” for=”document” event=”onkeydown”>
 if(event.keyCode==13 && event.srcElement.type!=’button’ &&
event.srcElement.type!=’submit’ &&     event.srcElement.type!=’reset’ &&
event.srcElement.type!=’’&& event.srcElement.type!=’textarea’);
   event.keyCode=9;
</script>
onkeydown=”if(event.keyCode==13) event.keyCode=9″

14.DataGrid超級連接列
DataNavigateUrlField=”欄位名”
DataNavigateUrlFormatString=”http://xx/inc/delete.aspx?ID={0}”

15.DataGrid行隨滑鼠變色
private void DGzf_ItemDataBound(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 if (e.Item.ItemType!=ListItemType.Header)
 {
  e.Item.Attributes.Add(
“onmouseout”,”this.style.backgroundColor=”"+e.Item.Style["BACKGROUND-COLOR"]+”"”);
  e.Item.Attributes.Add( “onmouseover”,”this.style.backgroundColor=”"+
“#EFF3F7″+”"”);
 }
}

16.範本列
<ASP:TEMPLATECOLUMN visible=”False” sortexpression=”demo” headertext=”ID”>
<ITEMTEMPLATE>
<ASP:LABEL text=’<%# DataBinder.Eval(Container.DataItem, “ArticleID”)%>’
runat=”server” width=”80%” id=”lblColumn” />
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN headertext=”選中”>
<HEADERSTYLE wrap=”False” horizontalalign=”Center”></HEADERSTYLE>
<ITEMTEMPLATE>
<ASP:CHECKBOX id=”chkExport” runat=”server” />
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:CHECKBOX id=”chkExportON” runat=”server” enabled=”true” />
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
  
Code Behind File程式碼
protected void CheckAll_CheckedChanged(object sender, System.EventArgs e)
{
 //改變列的選定,實現全選或全不選。
 CheckBox chkExport ;
 if( CheckAll.Checked)
 {
  foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
  {
   chkExport = (CheckBox)oDataGridItem.FindControl(“chkExport”);
   chkExport.Checked = true;
  }
 }
 else
 {
  foreach(DataGridItem oDataGridItem in MyDataGrid.Items)
  {
   chkExport = (CheckBox)oDataGridItem.FindControl(“chkExport”);
   chkExport.Checked = false;
  }
 }
}  

17.數位格式化
  【<%#Container.DataItem(“price”)%>的結果是500.0000,怎樣格式化為500.00?】
<%#Container.DataItem(“price”,”{0:¥#,##0.00}”)%>
int i=123456;
string s=i.ToString(“###,###.00″);

18.日期格式化
  【aspx頁面內:<%# DataBinder.Eval(Container.DataItem,”Company_Ureg_Date”)%>
  顯示為: 2004-8-11 19:44:28
  我只想要:2004-8-11 】
<%# DataBinder.Eval(Container.DataItem,”Company_Ureg_Date”,”{0:yyyy-M-d}”)%>
  應該如何改?
  【格式化日期】
  取出來,一般是object((DateTime)objectFromDB).ToString(“yyyy-MM-dd”);

  【日期的驗證運算式】
  A.以下正確的輸入格式: [2004-2-29], [2004-02-29 10:29:39 pm], [2004/12/31]
^((d{2}(([02468][048])|([13579][26]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|([1-2][0-9])))))|(d{2}(([02468][1235679])|([13579][01345789]))[-/s]?((((0?[13578])|(1[02]))[-/s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[-/s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[-/s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(s(((0?[1-9])|(1[0-2])):([0-5][0-9])((s)|(:([0-5][0-9])s))([AM|PM|am|pm]{2,2})))?$

  B.以下正確的輸入格式:[0001-12-31], [9999 09 30], [2002/03/03]
^d{4}[-/s]?((((0[13578])|(1[02]))[-/s]?(([0-2][0-9])|(3[01])))|(((0[469])|(11))[-/s]?(([0-2][0-9])|(30)))|(02[-/s]?[0-2][0-9]))$

  【大小寫轉換】
HttpUtility.HtmlEncode(string);
HttpUtility.HtmlDecode(string)

19.如何設定全域變數
  Global.asax中
  Application_Start()事件中
  添加Application[屬性名] = xxx;
  就是你的全域變數

20.怎樣作到HyperLinkColumn生成的連接後,點擊連接,打開新視窗?
  HyperLinkColumn有個屬性Target,將值設置成”_blank”即可.(Target=”_blank”)
  【ASPNETMENU】點擊功能表項彈出新視窗
  在你的menuData.xml檔的菜單項中加入URLTarget=”_blank”,如:
<?xml version=”1.0″ encoding=”GB2312″?>
<MenuData ImagesBaseURL=”images/”>
<MenuGroup>
<MenuItem Label=”內參信息” URL=”Infomation.aspx” >
<MenuGroup ID=”BBC”>
<MenuItem Label=”公告資訊” URL=”Infomation.aspx” URLTarget=”_blank”
LeftIcon=”file.gif”/>
<MenuItem Label=”編制資訊簡報” URL=”NewInfo.aspx” LeftIcon=”file.gif” />

……

21.讀取DataGrid控制項TextBox值
foreach(DataGrid dgi in yourDataGrid.Items)
{
 TextBox tb = (TextBox)dgi.FindControl(“yourTextBoxId”);
 tb.Text….
}

23.在DataGrid中有3個範本列包含Textbox分別為 DG_ShuLiang (數量) DG_DanJian(單價)
DG_JinE(金額)分別在5.6.7列,要求在錄入數量及單價的時候自動算出金額即:數量*單價=金額還要求錄入時限制為
數值型.我如何用用戶端Script實現這個功能?
  〖思歸〗

<asp:TemplateColumn HeaderText=”數量”>
<ItemTemplate>
<asp:TextBox id=”ShuLiang” runat=’server’ Text=’<%#
DataBinder.Eval(Container.DataItem,”DG_ShuLiang”)%>’
onkeyup=”javascript:DoCal()”
/>
<asp:RegularExpressionValidator id=”revS” runat=”server”
ControlToValidate=”ShuLiang” ErrorMessage=”must be integer”
ValidationExpression=”^d+$” />
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderText=”單價”>
<ItemTemplate>
<asp:TextBox id=”DanJian” runat=’server’ Text=’<%#
DataBinder.Eval(Container.DataItem,”DG_DanJian”)%>’
onkeyup=”javascript:DoCal()”
/>
<asp:RegularExpressionValidator id=”revS2″ runat=”server”
ControlToValidate=”DanJian” ErrorMessage=”must be numeric”
ValidationExpression=”^d+(.d*)?$” />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText=”金額”>
<ItemTemplate>
<asp:TextBox id=”JinE” runat=’server’ Text=’<%#
DataBinder.Eval(Container.DataItem,”DG_JinE”)%>’ />
</ItemTemplate>
</asp:TemplateColumn><script language=”javascript”>
function DoCal()
{
 var e = event.srcElement;
 var row = e.parentNode.parentNode;
 var txts = row.all.tags(“INPUT”);
 if (!txts.length || txts.length < 3)
  return;
 var q = txts[txts.length-3].value;
 var p = txts[txts.length-2].value;
 if (isNaN(q) || isNaN(p))
  return;
 q = parseInt(q);
 p = parseFloat(p);
 txts[txts.length-1].value = (q * p).toFixed(2);
}
</script>

24.datagrid選定比較底下的行時,為什麼總是刷新一下,然後就捲軸到了最上面,剛才選定的行因螢幕的關係就看不到了。
page_load
page.smartNavigation=true
  
25.在Datagrid中修改資料,當點擊編輯鍵時,資料出現在TextBox中,怎麼控制TextBox的大小 ?
private void DataGrid1_ItemDataBound(obj sender,DataGridItemEventArgs e)
{
 for(int i=0;i<e.Item.Cells.Count-1;i++)
  if(e.Item.ItemType==ListItemType.EditType)
  {
   e.Item.Cells[i].Attributes.Add(“Width”, “80px”)
  }
}

26.對話方塊
private static string ScriptBegin = “<script language=”JavaScript”>”;
private static string ScriptEnd = “</script>”;
public static void ConfirmMessageBox(string PageTarget,string Content)
{
 string ConfirmContent=”var
retValue=window.confirm(’”+Content+”’);”+”if(retValue){window.location=’”+PageTarget+”’;}”;
 ConfirmContent=ScriptBegin + ConfirmContent + ScriptEnd;
 Page ParameterPage = (Page)System.Web.HttpContext.Current.Handler;
 ParameterPage.RegisterStartupScript(“confirm”,ConfirmContent);
 //Response.Write(strScript);
}
27. 將時間格式化:string aa=DateTime.Now.ToString(“yyyy年MM月dd日”);
1.1 取當前年月日時分秒
currentTime=System.DateTime.Now;
1.2 取當前年
int 年= DateTime.Now.Year;
1.3 取當前月
int 月= DateTime.Now.Month;
1.4 取當前日
int 日= DateTime.Now.Day;
1.5 取當前時
int 時= DateTime.Now.Hour;
1.6 取當前分
int 分= DateTime.Now.Minute;
1.7 取當前秒
int 秒= DateTime.Now.Second;
1.8 取當前毫秒
int 毫秒= DateTime.Now.Millisecond;

28.自定義分頁程式碼:
先定義變數 :
public static int pageCount; //總頁面數
public static int curPageIndex=1; //當前頁面
  
下一頁:
if(DataGrid1.CurrentPageIndex < (DataGrid1.PageCount – 1))
{
 DataGrid1.CurrentPageIndex += 1;
 curPageIndex+=1;
}
bind(); // DataGrid1資料綁定函數
上一頁:
if(DataGrid1.CurrentPageIndex >0)
{
 DataGrid1.CurrentPageIndex += 1;
 curPageIndex-=1;
}

bind(); // DataGrid1資料綁定函數
直接頁面跳轉:
int a=int.Parse(JumpPage.Value.Trim());//JumpPage.Value.Trim()為跳轉值
if(a<DataGrid1.PageCount)
{
 this.DataGrid1.CurrentPageIndex=a;
}
bind();

29.DataGrid使用:
添加刪除確認:
private void DataGrid1_ItemCreated(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
 foreach(DataGridItem di in this.DataGrid1.Items)
 {
  if(di.ItemType==ListItemType.Item||di.ItemType==ListItemType.AlternatingItem)
  {
   ((LinkButton)di.Cells[8].Controls[0]).Attributes.Add(“onclick”,”return
confirm(’確認刪除此項嗎?’);”);
  }
 }
}

樣式交替:
ListItemType itemType = e.Item.ItemType;
if (itemType == ListItemType.Item )
{

 e.Item.Attributes["onmouseout"]=”javascript:this.style.backgroundColor=’#FFFFFF’;”;

 e.Item.Attributes["onmouseover"]=”javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;”
;

}

else if( itemType == ListItemType.AlternatingItem)
{
 e.Item.Attributes["onmouseout"]=”javascript:this.style.backgroundColor=’#a0d7c4’;”;

 e.Item.Attributes["onmouseover"]=”javascript:this.style.backgroundColor=’#d9ece1’;cursor=’hand’;”
;
}
 
添加一個編號列:
DataTable dt= c.ExecuteRtnTableForAccess(sqltxt); //執行sql返回的DataTable

DataColumn dc=dt.Columns.Add(“number”,System.Type.GetType(“System.String”));
for(int i=0;i<dt.Rows.Count;i++)
{
 dt.Rows[i]["number"]=(i+1).ToString();
}
DataGrid1.DataSource=dt;

DataGrid1.DataBind();
  DataGrid1中添加一個CheckBox,頁面中添加一個全選框
private void CheckBox2_CheckedChanged(object sender, System.EventArgs e)
{
 foreach(DataGridItem thisitem in DataGrid1.Items)
 {
  ((CheckBox)thisitem.Cells[0].Controls[1]).Checked=CheckBox2.Checked;
 }
}
將當前頁面中DataGrid1顯示的資料全部刪除
foreach(DataGridItem thisitem in DataGrid1.Items)
{
 if(((CheckBox)thisitem.Cells[0].Controls[1]).Checked)
 {
  string strloginid= DataGrid1.DataKeys[thisitem.ItemIndex].ToString();
  Del (strloginid); //刪除函數
 }
}

30.當然在不同目錄下,需要獲取資料庫連接字串(如果連接字串放在Web.config,然後在Global.asax中初始化)
在Application_Start中添加以下程式碼:
Application["ConnStr"]=this.Context.Request.PhysicalApplicationPath+ConfigurationSettings.
   AppSettings["ConnStr"].ToString();

31. 變數.ToString()
字元型轉換 轉為字串
12345.ToString(“n”); //生成 12,345.00

12345.ToString(“C”); //生成 ¥12,345.00

12345.ToString(“e”); //生成 1.234500e+004
12345.ToString(“f4″); //生成 12345.0000
12345.ToString(“x”); //生成 3039 (16進制)
12345.ToString(“p”); //生成 1,234,500.00%  

32、變數.Substring(參數1,參數2);
截取字串的一部分,參數1為左起始位數,參數2為截取幾位。 如:string s1 = str.Substring(0,2);
33.在自己的網站上登錄其他網站:(如果你的頁面是通過內嵌方式的話,因為一個頁面只能有一個FORM,這時可以導向另外一個頁面再送出登錄資訊)
<SCRIPT language=”javascript”>
<!–
 function gook(pws)
 {
  frm.submit();
 }
//–>
</SCRIPT> <body leftMargin=”0″ topMargin=”0″ onload=”javascript:gook()”
marginwidth=”0″ marginheight=”0″>
<form name=”frm” action=” http://220.194.55.68:6080/login.php?retid=7259 ”
method=”post”>
<tr>
<td>
<input id=”f_user” type=”hidden” size=”1″ name=”f_user” runat=”server”>
<input id=”f_domain” type=”hidden” size=”1″ name=”f_domain” runat=”server”>
<input class=”box” id=”f_pass” type=”hidden” size=”1″ name=”pwshow”
runat=”server”>
<INPUT id=”lng” type=”hidden” maxLength=”20″ size=”1″ value=”5″ name=”lng”>
<INPUT id=”tem” type=”hidden” size=”1″ value=”2″ name=”tem”>
</td>
</tr>
</form>
  TextBox的名稱必須是你要登錄的網頁上的名稱,如果程式碼不行可以用vsniffer 看看。
  下面是獲取用戶輸入的登錄資訊的程式碼:
string name;
name=Request.QueryString["EmailName"];
try
{
 int a=name.IndexOf(“@”,0,name.Length);
 f_user.Value=name.Substring(0,a);
 f_domain.Value=name.Substring(a+1,name.Length-(a+1));
 f_pass.Value=Request.QueryString["Psw"];
}
catch
{
 Script.Alert(“錯誤的郵件!”);
 Server.Transfer(“index.aspx”);
}

最好將你的aspnetmenu升級到1.2版

Share

Filter A GridView After The Initial Bind


2010
04.13

Filter A GridView After The Initial Bind

One of the goals that Microsoft has really pushed for in ASP.NET 2.0 is saving the amount of coding necessary to perform common tasks such as data access. On a recent project, I needed the ability to filter the results on a GridView control after I returned the results from my datasource. To accomplish this, I added a DropDownList and set the AutoPostBack property on the DropDownList to True. I added two values to the list; one that showed all of the results, and one that showed the filtered result set which in my case was a list of exceptions. I also added a SqlDataSource object called MySqlDataSource. I set the OnChange event to a subroutine similar to below:

Private Sub FilterDropDownList_Change(s as Object, e as EventArgs)
If FilterDropDownList.SelectedValue = “Filter” then
MySqlDataSource.FilterExpression = “MyColumn=1″
Else
MySqlDataSource.FilterExpression = “”
End If

MyGridView.DataBind
End Sub

I added the sub MyGridView.DataBind to the subroutine because this subroutine occurs after the SqlDataSource object is created and the resultset is filled. In reality, you only need to perform the MyGridView.DataBind when the FilterExpression value is set to something other than “”.

From

http://weblogs.asp.net/jgaylord/archive/2006/05/31/Filter-A-GridView-After-The-Initial-Bind.aspx

Share