TIL

Today I Learned. 知ったこと、学んだことを書いていく

VB.NET

文字列からクラスのインスタンスを生成 - VB.NET

例) ProjectName.Personのインスタンスを生成したい 生成対象のクラス(ProjectName.Person) Public Class Person Public name As String Public Sub New() Me.name = "hoge" End Sub Public Sub New(ByVal name As String) Me.name = name End Sub End Class…

CsvWriterでCSVに書き込む - VB.NET

CSVファイルへの書き込みにはCsvHelperというのを使うといいらしい 書き込み用のクラスを作って、書く!! github.com パッケージマネージャーを使ってインストールする ツール > NuGet パッケージ マネージャー > パッケージ マネージャー コンソール PM> I…

equal to 操作の "Japanese_CI_AS" と "Japanese_CS_AS_KS_WS" 間での照合順序の競合を解決できません。 ってエラー

英訳すると Cannot resolve the collation conflict between %1 and %2 in the %3 operation 複数のテーブルで照会順序が合っていないときにおこる? sql server - Cannot resolve the collation conflict between "SQL_Latin1_General_CP1_CI_AS" and "Lati…

DB接続のタイムアウト - VB.NET

タイムアウトには「コネクションタイムアウト」と「コマンドタイムアウト」の2つがあるらしい。 コネクションタイムアウト:接続するときに起こるタイムアウト コマンドタイムアウト:SQLを実行しているときに起こるタイムアウト タイムアウト時間を設定する…

コンボボックスの値を設定する - VB.NET

一番最初の選択肢を選択する SelectIndexプロパティを設定することで選択できる comboBox1.SelectIndex = 0 参考文献 05.アイテムを選択する < ComboBox Tips < コントロール Tips メニュー < VB.NET 2005 Tips HOME < HIRO's.NET

パラメーター化クエリ 'xxxx' に必要なパラメーター 'yyyy' が指定されていません。 - VB.NET

これはsqlCmd.Parameters.Add()でパラメータを追加するときの値がNothingとかを設定してしまうと、エラーになってしまう。 なので、DbNull.Valueを設定する sqlCmd.Parameters.Add("@xxx", SqlDbType.Char).Value = DBNull.Value ''' <summary> ''' Nothingの場合、DB</summary>…

日付を書式を指定して文字列で取得する - VB.NET

2018/02 っていう感じで取得したい! ToString()を使う Debug.Print(Today.ToString("yyyy/MM")) 参考文献 日時(DateTimeオブジェクト)を文字列に変換する - .NET Tips (VB.NET,C#...)

LINQでGroupBy - VB.NET

LINQについて知るには 型推論 匿名クラス ラムダ式 を知っておかないといけない こちらのサイトのソースをそのまま、コピペしたみたいな感じになっている... 理解して書かないとダメです... ''' <summary> ''' 理解してないから、まとめないと!!! ''' 参考サイト '</summary>…

SqlCommand.Parameters.Addで設定する値の型について - VB.NET

Object型でも行けた ということはDBNull.Value(Object型)を返すメソッドが使えるということ Dim val1 as Object = "hello" sqlCmd.Parameters.Add("@PARAM1", SqlDbType.Char).Value = val1 sqlCmd.Parameters.Add("@PARAM2", SqlDbType.Int).Value = val2 …

データが Null です。このメソッド、またはプロパティは Null 値で呼び出せません。 - VB.NET

SQLを実行して、結果を取得しようとしたときに、このエラーが発生した。 データベースを見てみると、確かに、NULLになっている。 でも、値がNULLの列を取得しようとしただけでエラーになるってどういうこと!? このサイトで英訳すると、 Data is Null. This…

sender と e - VB.NET

Object型の snder とEventArgs型の e sender イベントを発生させたオブジェクト e イベントに関連する情報 1つのプロシージャで複数のイベントを処理できるため、どのオブジェクトによってイベントが発生したのかを判断するときに sender オブジェクトを使用…

右上の閉じるボタンを押下不可にする - VB.NET

''' <summary> ''' 右上の閉じるボタンを押下不可にする ''' </summary> Protected Overrides ReadOnly Property CreateParams() As System.Windows.Forms.CreateParams Get Const CS_NOCLOSE As Integer = &H200 Dim myCreateParams As System.Windows.Forms.CreateParams = My…

RemoveHandlerとAddHandler - VB.NET

それぞれ、イベントハンドリングを有効にしたり、無効にしたりすることができる。 イベントの無効化 RemoveHandler イベント名, AddressOf ハンドルを無効にするメソッド名 イベントの有効化 AddHandler イベント名, AddressOf ハンドルを有効にするメソッド…

集約例外ハンドラを使ってみた - VB.NET

エントリポイントについてはここに書いた VB.NETでの例外処理についてはここに書いた アプリケーションフレームワークを無効にしてしまうと、My.Application.ApplicationContextが使えなくなるため、ApplicationEventsを使う方法がいいかも。My.Application.…

Application.Runとは - VB.NET

少し調べたのでメモ Application.Run(New From1)は、Form1内の処理を実行するという意味? メッセージ・ループ処理を実行する Windowsアプリケーションの実行の仕組み Windowsメッセージ(処理実行の単位)を順次処理(メッセージ・ループ処理)することによって…

STAThreadとは - VB.NET

エントリポイントに記述されているSTAThreadについてのメモ エントリポイントには必要な記述 シングルスレッドで動作していることを示す記述 Module Program <STAThread()> _ Sub Main() Application.EnableVisualStyles() Application.SetCompatibleTextRenderingDefault</stathread()>…

エントリポイントを作成する - VB.NET

まず、エントリポイントとは、アプリケーションを起動したときに最初に実行されるプログラムのこと。 VB.NETではMainメソッドがエントリポイントとなっている。 でも、Windowsフォームアプリケーションのプロジェクトでは、コンパイラによって、自動で作成さ…

VB.NETの例外処理 - VB.NET

例外処理について調べてみた時の走り書き! Javaには業務エラーを処理する検査例外があるので半ば強制的に例外をキャッチなりスローしなければいけませんが、.Net にはJavaの検査例外にあたるものがないので、業務エラーは原則戻り値で処理する設計になって…

DateTimePickerで日付が選択されたときのイベント - VB.NET

DateTimePickerで日付が選択されたときに発生するイベントは CloseUpイベント となっている ※ ValueChangedイベントだと、月を変更した時もイベントが発生してしまうため 最初は ValueChanged イベントを使っていたため、動作がおかしくなってしまった...

日付を比較する Date.Compare() - VB.NET

2018/1/9(火) 18:45 修正 日付の比較であれば、Date.Compareでよかったのかも 日付を比較するにはDate.Compareメソッドを使う。 Compare(t1, t2)となっている場合 t1 < t2 の場合、負の数 t1 = t2 の場合、0 t1 > t2 の場合、正の数 例 今日の日付 と 8月31…

DataGridViewのある列の値を小数点第2位までしか表示させないようにする

以下のような感じで表示させたいとき 123.45 DataGridViewColumnのDefaultCellStyleのFormatに書式を設定する DataGridView1.Columns(0).DefaultCellStyle.Format = "N2" 参考文献 DataGridViewの小数点以下表示に関して

DataGridView 指定の列の行にカーソルを当てて、スクロールさせる

指定のセルにカーソルを当てる もし、そのセルが表示されていなかった場合には自動でスクロールされる! ' 最終行の1列目にカーソルを当てて、スクロールする DataGridView1.CurrentCell = DataGridView1(0, DataGridView1.Rows.Count - 1) 参考文献 DataGri…

VisualStudio2017で「ソースは利用できません」っていうエラー出た

プログラム作ってて、実行してたら「ソースは利用できません」っていうエラー出たから、その時の対処法メモしておく。 以下の2つを試してみた結果、エラーが出なくなった VisualStudioの ツール - オプション - デバッグ - 全般 - 「アドレスレベルのデバッ…

外からは読み取り専用で中では変更できるようにする ReadOnlyとProperty - VB.NET

Public ReadOnly Propertyで定義してあげればよい。 Public Class TestClass Private _testStr As String Public ReadOnly Property testStr As String Get Return _testStr End Get End Property End Class Public ReadOnlyだと、中からも変更できなくなっ…

DataGridViewのコンボボックスの列を追加する。

「コンボボックスの表示のテキスト」と「実際の値」を別にして、コンボボックスを表示するにはDataGridViewComboBoxColumnのDataSourceに設定する必要がある。 こんな感じでやりたい 以下、ソース ChoiceContainerクラスは項目を格納するためのクラスとなっ…

.NETのソースコードを見る

.NETのソースコードを見るには https://referencesource.microsoft.com/ をみる ソースはC#だけど、VB.NETってないのかな... GitHubで管理?されているっぽい github.com 参考文献 .Netのソースコードを読む - Qiita

親クラスフォームで定義したメソッドを子クラスフォームでオーバーライドし、親側で子側で実装したメソッドを実行する - VB.net

まず、やりたい事は、以下のようなこと キーイベントの処理を親クラスに定義しておき、子クラスでは、親クラスに定義されているメソッドをオーバーライドするだけで、「ボタンクリック時」と「キー押下時」の処理をまとめる。 これが今の自分の最善策だと思…

ユーザコントロールに新しくイベントを追加する - VB.NET

ユーザコントロールを配置したForm側で、(ユーザコントロール内に配置した)ボタンをクリックしたときに何か処理をしたい時にどうすればいいか 例:Button1を押下時のイベントを追加する場合 定義側 まずは、外からアクセスできるイベントハンドラを定義する …

DataGridViewにList(Of クラス)の内容を表示する - VB.NET

DataGridViewにListの中身を表示したい時がある。一つ一つ行を追加しているとすごい時間がかかるため、これをやりたい。 でも、List(Of String)ではできないため、クラスを作らないといけないのが微妙。 ポイント DataGridView.AutoGenerateColumns = False…

Replace()関数 指定の文字列で置換(置換回数を指定) - VB.NET

指定回数置換したい場合にはReplace()関数を使う。 Replace(置換元の文字列, 置換前, 置換後, 検索開始位置(1以上), 置換回数)で記述する Dim s = "h%l%o" Console.WriteLine(Replace(s, "%", "e", 1, 1)) ' hel%o Console.WriteLine(Replace(s, "%", "e", 1…