正規表現で前0後0をtrimします。
使い方
TrimSmallNumberZero(0)→0
TrimSmallNumberZero(0001)→1
TrimSmallNumberZero(001.0000)→1
TrimSmallNumberZero(0000.1000)→0.1
'-----------------------------------------------------------------------
' Function outline : 少数点以下末尾の0を削除する関数
' 0002.050000→2.05
'
' argument : str – 変換対象文字列
'
' return value : 変換後の文字列
'
'-----------------------------------------------------------------------
Public Shared Function TrimSmallNumberZero(ByVal strVal As String) As String
Dim strRegexReplaceHead As String = ""
Dim strRegexReplaceEnd As String = ""
Dim strRegexMatch As String = "^[\-]?[0-9]+\.[0-9]+$"
Dim matchFlg As Match = Regex.Match(strVal, strRegexMatch)
If matchFlg.Success Then
'少数
strRegexReplaceHead = "^0+(?=[0-9]+\.)"
strRegexReplaceEnd = "0+$|\.0+$|\.$"
Else
'整数
strRegexReplaceHead = "^0+(?=0$)|^0+(?=[0-9]+$)"
End If
strVal = Regex.Replace(strVal, strRegexReplaceHead, "")
strVal = Regex.Replace(strVal, strRegexReplaceEnd, "")
Return strVal
End Function
使い方
TrimSmallNumberZero(0)→0
TrimSmallNumberZero(0001)→1
TrimSmallNumberZero(001.0000)→1
TrimSmallNumberZero(0000.1000)→0.1
'-----------------------------------------------------------------------
' Function outline : 少数点以下末尾の0を削除する関数
' 0002.050000→2.05
'
' argument : str – 変換対象文字列
'
' return value : 変換後の文字列
'
'-----------------------------------------------------------------------
Public Shared Function TrimSmallNumberZero(ByVal strVal As String) As String
Dim strRegexReplaceHead As String = ""
Dim strRegexReplaceEnd As String = ""
Dim strRegexMatch As String = "^[\-]?[0-9]+\.[0-9]+$"
Dim matchFlg As Match = Regex.Match(strVal, strRegexMatch)
If matchFlg.Success Then
'少数
strRegexReplaceHead = "^0+(?=[0-9]+\.)"
strRegexReplaceEnd = "0+$|\.0+$|\.$"
Else
'整数
strRegexReplaceHead = "^0+(?=0$)|^0+(?=[0-9]+$)"
End If
strVal = Regex.Replace(strVal, strRegexReplaceHead, "")
strVal = Regex.Replace(strVal, strRegexReplaceEnd, "")
Return strVal
End Function
ドロップダウンリストにjavascript:OnChangeコマンドを追加
DropDown1.Attributes("onChange") = _
"javascript:if(this.value=='1'){return confirm('削除してもよろしいでしょうか?')}"
DropDown1.Attributes("onChange") = _
"javascript:if(this.value=='1'){return confirm('削除してもよろしいでしょうか?')}"
DropDownListの先頭行に行追加
----------------------------------------------------------------------
DropDownList.Items.Insert(0, New ListItem("選択してください", "0"))
DropDownList.Items.Insert(0, New ListItem("東京", "1"))
----------------------------------------------------------------------
例)DropDownList.Items.Insert(0, New ListItem("東京", "1"))
0:追加位置
"東京":表示
"1":value
----------------------------------------------------------------------
DropDownList.Items.Insert(0, New ListItem("選択してください", "0"))
DropDownList.Items.Insert(0, New ListItem("東京", "1"))
----------------------------------------------------------------------
例)DropDownList.Items.Insert(0, New ListItem("東京", "1"))
0:追加位置
"東京":表示
"1":value
カスタム日付を使用する
例)
Dim datYmd As Date = CDate("2010/07/20")
Dim strYmd = datYmd .ToString("MMM/dd",System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))
結果)
Jul/20
その他書式について以下のページ参照
http://msdn.microsoft.com/ja-jp/library/8kb3ddd4
例)
Dim datYmd As Date = CDate("2010/07/20")
Dim strYmd = datYmd .ToString("MMM/dd",System.Globalization.CultureInfo.CreateSpecificCulture("en-US"))
結果)
Jul/20
その他書式について以下のページ参照
http://msdn.microsoft.com/ja-jp/library/8kb3ddd4
ViewStateの反映のタイミングについて
<Page_Load中>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ViewState("mg_cd") = "123456"
Dim a As String = CStr(ViewState("mg_cd"))
→aのvalueはNothing
End Sub
<Pre_Render中>
Protected Sub Pre_Render(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim a As String = CStr(ViewState("mg_cd"))
→aのvalueは"123456"
End Sub
<Page_Load中>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ViewState("mg_cd") = "123456"
Dim a As String = CStr(ViewState("mg_cd"))
→aのvalueはNothing
End Sub
<Pre_Render中>
Protected Sub Pre_Render(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
Dim a As String = CStr(ViewState("mg_cd"))
→aのvalueは"123456"
End Sub
トランザクション利用時のISOLATIONレベル
■IsolationLevel.Chaos
■IsolationLevel.ReadCommitted
コミット済み読み取り
コミット済みのデータしか読み取らないモード
※SQL Serverのデフォルト
■IsolationLevel.ReadUncommitted
非コミット読み取り
対象となるオブジェクトに対するトランザクションが完了していなくても、現在の最新状態を読み取るモード
■IsolationLevel.RepeatableRead
再読み込み可能読み取り
対象となるすべてのテーブルの対象データがトランザクション実行中に変更されないことを保証します。
ただし、トランザクションの対象となるテーブルに新規にデータが追加されたり、対象ではないデータが削除されたりすることは防止しません。
■IsolationLevel.Serializable
直列化
トランザクションが完全に実行を完了するまで、対象となったオブジェクトを完全にロックし、ほかのトランザクションからのデータの挿入や更新を不可能にします。
トランザクションが並行することなく順に実行されることから、「直列化」とと呼ばれています。
■IsolationLevel.Snapshot
データを読み込む時に、ロックを要求しないことで、高速なデータアクセスを提供する。
それぞれのトランザクションが開始される際、コミットされたデータのスナップショットを受け取り、ほかのトランザクションによる変更が見えないように動作する。
■IsolationLevel.Unspecified
■IsolationLevel.Chaos
■IsolationLevel.ReadCommitted
コミット済み読み取り
コミット済みのデータしか読み取らないモード
※SQL Serverのデフォルト
■IsolationLevel.ReadUncommitted
非コミット読み取り
対象となるオブジェクトに対するトランザクションが完了していなくても、現在の最新状態を読み取るモード
■IsolationLevel.RepeatableRead
再読み込み可能読み取り
対象となるすべてのテーブルの対象データがトランザクション実行中に変更されないことを保証します。
ただし、トランザクションの対象となるテーブルに新規にデータが追加されたり、対象ではないデータが削除されたりすることは防止しません。
■IsolationLevel.Serializable
直列化
トランザクションが完全に実行を完了するまで、対象となったオブジェクトを完全にロックし、ほかのトランザクションからのデータの挿入や更新を不可能にします。
トランザクションが並行することなく順に実行されることから、「直列化」とと呼ばれています。
■IsolationLevel.Snapshot
データを読み込む時に、ロックを要求しないことで、高速なデータアクセスを提供する。
それぞれのトランザクションが開始される際、コミットされたデータのスナップショットを受け取り、ほかのトランザクションによる変更が見えないように動作する。
■IsolationLevel.Unspecified
検索ボタンをClickしGridViewにデータバインドしたときの処理実行順
Page_Load
↓
BottonClick
↓
prerender
↓
RowCreated
↓
RowDataBound
↓
DataBound
Page_Load
↓
BottonClick
↓
prerender
↓
RowCreated
↓
RowDataBound
↓
DataBound
文字位置を取得する'検索対象文字列
Dim strName As String = "あいうえおえういあ"
'検索する文字
Dim strSearchChar As String = "う"
'文字位置を取得する
Dim intP As Integer= strName.IndexOf(strSearchChar)
文字列からの切り出し■LEFT
Dim strCd As String = Left("abcde", 2)
→ab
以下と同じ
----------------------------------------------
Dim str As String = "abcde"
Dim strCd As String = str.Substring(0, 2)
----------------------------------------------
■RIGHT
Dim strStatus As String = Right("abcde", 1)
→e
----------------------------------------------
Dim str As String = "abcde"
Dim strCd As String = str.Substring(4)
----------------------------------------------
■MID
Dim strCd As String = Mid("abcde", 2, 2)
→bc
----------------------------------------------
Dim str As String = "abcde"
Dim strCd As String = str.Substring(1,2)
----------------------------------------------
Substringメソッドでは開始位置のインデックス番号が0から始まるのに対して、Mid関数では1から始まる点には注意が必要である。Mid 関数がこのような仕様になっているのは、Visual Basic 6.0以前のバージョンのMid関数がそうだったため
また、.NETでは文字列はすべてUnicodeである。このため、文字列を明示的にUnicodeとして処理するために提供されていた RightB関数、MidB関数、LeftB関数は、VB.NETではもはやサポートされていない。
#RowCreatedイベントでCommandArgumentをセットすると、PostBackした場合でも値が取得できる
Protected Sub grv_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grv.RowCreated
If e.Row.RowType.Equals(DataControlRowType.DataRow) Then
Dim btn As Button = CType(e.Row.FindControl("btn"), Button)
btn.CommandArgument = e.Row.RowIndex.ToString
End If
End Sub
#RowDataBoundイベントでCommandArgumentをセットすると、PostBackした場合でも値が消える
Protected Sub grv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grv.RowDataBound
If e.Row.RowType.Equals(DataControlRowType.DataRow) Then
Dim btn As Button = CType(e.Row.FindControl("btn"), Button)
btn.CommandArgument = e.Row.RowIndex.ToString
End If
End Sub
※TempleteFieldの場合のみ
Protected Sub grv_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grv.RowCreated
If e.Row.RowType.Equals(DataControlRowType.DataRow) Then
Dim btn As Button = CType(e.Row.FindControl("btn"), Button)
btn.CommandArgument = e.Row.RowIndex.ToString
End If
End Sub
#RowDataBoundイベントでCommandArgumentをセットすると、PostBackした場合でも値が消える
Protected Sub grv_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles grv.RowDataBound
If e.Row.RowType.Equals(DataControlRowType.DataRow) Then
Dim btn As Button = CType(e.Row.FindControl("btn"), Button)
btn.CommandArgument = e.Row.RowIndex.ToString
End If
End Sub
※TempleteFieldの場合のみ