VB.NET OleDbDataAdapter.Fill で DataTable が Nothing になることがある。

MDBにOleDbDataAdapter で sql を発行して DataTable を取得しています。

 

レコード件数がなければ、Table.Rows.Count = 0 になります。

ということで、

Dim Table  As DataTable = GetTable("select * from MasterTable1;") 

For i as Integer = 0 to Table.Rows.Count -1

    MessageBox.Show(Table.Rows(i)(0))

Next

 

のようなコードを書いているのですが、

 

時折原因のわからないエラーが起きていました。

調べてみると、

  Table に OleDbDataAdapter.Fill したときに、

Table がNothing になることがあるのです。

データが取得できずに空になっているのですが・・・。

そうなると、Table.Rows.Count のところで例外が飛びます。

 

原因として考えられるのは、LANケーブルの中途半端な損傷等の、ネットワークの物理的な問題。もしくは、ネットワーク構成の問題か。。。

現象の多発するPCのLANケーブルはつぶれており、中途半端な損傷が発生していた可能性が高いです。

 

といことで、

Dim Table  As DataTable = GetTable("select * from MasterTable1;") 

If Not Table Is Nothing Then

   For i as Integer = 0 to Table.Rows.Count -1

      MessageBox.Show(Table.Rows(i)(0))

   Next

End If

 のようにすれば、例外は出なくなります。

 

 

Chronyd 同期できない CentOS7

Chronyd で同期できない現象が起こっていましたが。

セグメント3つを許可していたのですが、一行で設定してはだめっだったようです。

allow 192.168.1.0/24

allow 192.168.2.0/24

allow 192.168.3.0/24

のように、3行にわけたらできました。

ちなみに、allow 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24 と書いた場合は、

一番最初の 192.168.1.0/24 だけ許可されるようです。

VB.NET MS ACCESS のSQLでLIKE ワイルドカード

LIKEのSQLACCESS 上でを記述するときは、

SELECT staffcode FROM StaffMaster WHERE StaffCode LIKE '1*';

(頭が1で始まるコードを抽出する)になりますが。

VB.NET からSQLで抽出する場合は、

SELECT staffcode FROM StaffMaster WHERE StaffCode LIKE '1%';

 

というように、ワイルドカードを意味するのは%になっておりますのでご注意を。

VB.NET メール添付ファイルで、無効なファイルと言われる。

System.Web.HttpException: 'メール アタッチメント 'C:\Users\***\Scan\log\2018-0915-103252.txt
' が無効です。'

 

と表示される。

良く調べたら、ファイルパスの最後に、間違ってvbCrlf がくっついていました。

YAMAHA RTX810 のフィルターで Dynamic の in と out について

まずは、filter の IN とOUTについて。

ルータに向かう方がIN

ルータから出てくる方がOUT

です。

 

dynamic の動作がよくわからなかったので実験。

ip secure filter in 1000 1001 9999 dynamic 1010

ip secure filter out 9999

 

9999は全てreject 

 

さて、これでinの1000でトリガーが引かれ、dynamic が有効となった時に、

out の9999(全てreject)に弾かれるのか?弾かれないのか?

答えは弾かれない。でした。

動的フィルタはin で設定していても、out 側も通るように動作します。