2021-02-01から1ヶ月間の記事一覧

関数の引数等にジェネリック型を指定する

VB

■関数等の引数にジェネリッククラスを指定する際の定義方法 ・例として以下のようなジェネリッククラスをメソッドの引数に指定する。 Public Class TData(Of T As New) End Sub ・定義方法 Function/Sub 関数名(ジェネリック)(関数の引数) ・例 Function Exp…

カスタム属性

VB

属性は、ClassやMethod、property等に、任意のパラメータを追加することができる。 追加した内容をリフレクションで読取、使用することが可能。 例えば以下は、TClassの各Propertyに、画面に表示する際の列名、Export時のヘッダ名、 また、出力の有無といっ…

DebuggerDisplay属性

VB

DebugDisplay属性を指定する事で、Debug時にウォッチで 当該クラスを見たときに、展開せずとも内容を表示することができる。 (例)<DebuggerDisplay("{UserId} {UserName} {UserPassword}")>Public Class TUserInfo Implements ITData ↓ウォッチ画面では、展開せずとも内容が表示される</debuggerdisplay("{userid}>

自フォーム内のメソッドをリフレクションで実行

VB

自フォーム内に定義しているメソッドへのリフレクションは、 MeのGetTypeを取得することで可能。 ただし、対象のメソッド名がPublicでないと、何故か取得できない。。 自フォーム内じゃなくてClassに定義しておけばようのでしょうが。 Dim typ As Type = Me.…

トリガー

SQL

テーブルの更新履歴データ等を残したい場合は、トリガを使うのが 一番早い。 ■イメージ ・履歴を残したいテーブルの履歴テーブルを作る。 このテーブルのフォーマットは、元テーブルのレイアウト プラス、追加で残したい任意の情報(更新された日時、UpDateか…

SQLParameterの値にNothing値をセットした場合、そのパラメータが無効になる

VB

ストアド呼出自、そのCommandParametersにNothingを渡した場合、 以下のエラーが発生する。 実行時に"プロシージャまたは関数 'XXX' にはパラメーター '@YYYYY' が必要ですが、指定されませんでした。 Nullをセットしたい場合は、ParameterにDBnull.Valueを…

XMLファイルのImport

VB

■XDocumentを使う 以下は、xml内の指定のNodeの値をListで取得する例 xDoc as XDocument = new XDocument.Load(importFilePath) xDoc.Elements("mappings").Elements("mapping"). Select(Function(x) x.Attribute("ColumnName").Value).ToList <以下のような…

クラス内の構造体に対するリフレクション

VB

tBase:構造体を持つクラス ’---フィルタ条件を作成 Dim flag As BindingFlags = BindingFlags.Public Or BindingFlags.Instance Or BindingFlags.Static Or BindingFlags.FlattenHierarchy '---構造体のインスタンスを生成(インスタンスからじゃないとフィ…

ComboboxがDropdownListの場合のSelectedText

SelectedTextは、どんなコントロールであれ選択されたテキスト部分が返される。 よって、DropdownListはテキストの部分選択ができない為、常に””が返される。 Comboboxの入力チェックは、SelectedValueやSelectedIndexなどで臨機応変に行う。 例えば、コンボ…

Genericな自作クラス

VB

■クラス名の直後に、型パラメータを指定する形で宣言 ・Public Class クラス名(Of 型パラメータ AS 制約) (ex) Public Class TestClass(Of T As New)

Genericな自作メソッド

VB

■メソッド名の直後に、型パラメータを停止する形で宣言 ・Sub/Function メソッド名(Of 型パラメータ)(引数) (ex) Sub TestMethod(Of T1, T2)(ByVal dic As Dictionary(Of T1, T2))

Resourceフォルダ内のファイルへのパス取得

VB

(*)exeと同フォルダにResourceファイルがある事を前提 ①exeのフォルダを取得:System.Windows.Forms.Application.StartupPath②①を絶対パス化:Path.GetFullPath(①)③②にResourceを結合:$"{②}\Resouce"

IsNullOrWhiteSpaceとIsNullOrEmptyの違い

VB

IsNullOrWhiteSpace:NULL、Empty、空白をTrue IsNullOrEmpty:NULL、EmptyをTrue ” ”:空白を許容するかどうか。

現在の日時を取得

VB

DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")

ストアドに対応したTDClass

VB

Imports System.Data.SqlClientPublic Class TDInsUserInfo Inherits BaseDAO Private Const SP_NAME As String = "spInsertUserInfo" Private ReadOnly _tCls As TUserInfo Sub New(ByVal tCls As TUserInfo) MyBase.New _tCls = tCls End Sub Protected Ov…

TDClassに対応したストアド

VB

ALTER PROCEDURE [dbo].[spInsUserInfo] @UserId VARCHAR(10) ,@UserName NVARCHAR(255) ,@UserPassword VARCHAR(50) ,@UserGrant INT ,@UserStatus INT ,@CreateUserId VARCHAR(10) ,@CreateTimeStamp DATETIME ,@ErrorCode INT OUTPUT ,@ErrorText NVARCHA…

Null 許容のオブジェクトには値を指定しなければなりません

Null許容且つ値がNothingのオブジェクトに下記のような判定処理をした場合、 掲題のエラーとなる。 If Not String.IsNullOrEmpty(TestCreateTimeStamp) TestCreateTimeStamp.ToStringとすればOK。

仮想メゾッド、抽象メソッド、クラス

VB

■仮想メソッド ・実装を持つが、子クラスでOverride可能なメソッド。 Public Overridable Sub TestMethod() Console.WriteLine("仮想メソッド") End Sub Public Overridable Property TestProperty As String = "仮想property" ■抽象メソッド ・実装を持たな…

DataListに対するソート

'単一項目しか持たないListのソート Dim wList2 As New List(Of String) wList2 = wList2.OrderBy(Function(x) x).ToList (*)Sortした値をリストやDGVのデータソースにセットするなら、ToList! ’複数項目あるリストを指定項目でソート Dim orderByList = li…

DataGridView:ボタンを追加

Dim column As New DataGridViewButtonColumn() ’ButtonのTextpropertyに設定した値を可視化する。 column.UseColumnTextForButtonValue = True column.Text = "選択" column.Name = "SelectButton" column.Width = 50 'DataGridViewに追加 .Insert(追加位置…