2010年11月5日 星期五

ASP.NET TextBox 英文自動轉大寫

在TextBox加入此樣式即可
不過要注意如果有寫入資料庫 還是得再轉換一次大寫
style="TEXT-TRANSFORM: uppercase"

SQL SERVER 民國年轉換函數(支援100年)

DECLARE @Format VARCHAR(9)
SET @Format = 'yyy/mm/dd'
SELECT [dbo].[udfTaiwanDateFormat] ([ACCT_DATE], @Format) as 'DATE'

使用jquery.ui.datepicker 判斷自行輸入格式是否符合

If IsDate(chk_cash_date_1.Text) <> True Then
Label4.Text = "日期格式錯誤!"
Exit Sub
End If
Dim date_list() As String
date_list = chk_cash_date_1.Text.Split("/")
If date_list.Count <> 3 Then
ScriptManager.RegisterStartupScript(UpdatePanel1, UpdatePanel1.GetType(), "date_error1", "alert('日期格式錯誤!');", True)
Exit Sub
End If
強制改成 yyyy/MM/dd 格式
Dim year_tmp As String
Dim month_tmp As String
Dim date_tmp As String
year_tmp = String.Format("{0:0000}", Convert.ToInt16(date_list(0)))
month_tmp = String.Format("{0:00}", Convert.ToInt16(date_list(1)))
date_tmp = String.Format("{0:00}", Convert.ToInt16(date_list(2)))
Dim merg_date As String = year_tmp + "/" + month_tmp + "/" + date_tmp

ASP.NET 尋找上個月底日期(VB)

ASP.NET 尋找上個月底日期(VB)
DateAdd("D", -1, Year(DateTime.Now) & "/" & Month(DateTime.Now) & "/1")

SQL SERVER 計算昨天日期

SQL SERVER 計算昨天日期
SELECT DATEADD(dd, DATEDIFF(dd,1,getdate()), 0)

SQL SERVER 多筆子查詢

在SQL SERVER裡當子查詢大於一筆資料會報錯 加入下面語法可使子查詢的多筆內容用逗號附加上去
SELECT [Object_Id]
,[Tool_No]
,[Serial_No]
,[Tool_Revision]
,[Sor_No]
,(SELECT [Serial_No] + ',' FROM [ACF_Tooling].[dbo].[Main] WHERE [Tool_Name] = 'BOF' FOR XML PATH('')) as Tool_Name
FROM [ACF_Tooling].[dbo].[Main]

2010年9月22日 星期三

SQL SERVER 預存程序 使用 TRANSACTION

SQL SERVER 2005新增了預存程序的 TRY ..... CATCH 使用上真的方便多了 1.舊式TRANSACTION用法(ASP.NET呼叫此預存程序可傳回指定錯誤說明)
.........
AS
BEGIN TRANSACTION
DECLARE @MSG varchar(30)
BEGIN
IF NOT EXISTS( ...... )
 BEGIN
  SET @MSG = 'a_fail'
  GOTO Error_Handler
 END
ELSE
 BEGIN
  DELETE .....
  SET @MSG = 'true'
 END
  
IF @MSG = 'true'
 BEGIN
    IF NOT EXISTS( ...... )
     BEGIN
      SET @MSG = 'b_fail'
      GOTO Error_Handler
     END
    ELSE
     BEGIN
      DELETE .....
      SET @MSG = 'true'
     END
 END
COMMIT TRAN
Error_Handler:
IF @MSG = 'a_fail' OR @MSG = 'b_fail'
 BEGIN
  ROLLBACK TRANSACTION
 END
SELECT @MSG
END
2. TRANSACTION加入 TRY ..... CATCH 用法(回傳false表示寫入失敗)
.........
AS
BEGIN TRY
 BEGIN TRANSACTION
  DECLARE @MSG varchar(30)
  SET @MSG = 'true'
  INSERT INTO ......
  INSERT INTO ......
  COMMIT TRANSACTION
 END TRY
BEGIN CATCH
  SET @MSG = 'false'
  ROLLBACK TRANSACTION
END CATCH
SELECT @MSG