投稿

2018の投稿を表示しています

型 'System.Collections.Generic.List<派生>' を 'System.Collections.Generic.List<基底>' に暗黙的に変換できません

基底クラスと派生クラスがあるとき、基底クラスのオブジェクトbへ派生クラスのオブジェクトdを代入することはできる。つまり「b=d;」はOKなのだが、しかしListを代入しようとするとエラーが起きるわけです。

SQLServerで「〇」が空文字列と一致する件

イメージ
少し前に不思議な現象をSQLServerで見つけたので記録しておく。「〇」文字をテーブルに登録して検索してみたらおかしいと云われて調べてみた。結果、「〇」ではなく「〇(漢数字)」文字を登録しているためとわかった。

タブコントロールに追加したタブが名前で参照できない

C#でタブコントロールにタブを追加するコードを書いて、タブの名前で参照しようとすると例外が起きるわけです。また、うまくいかない。

C#非同期処理ことはじめ

ようやくC#の非同期処理を使い始めたので、メモしておきます。

指定されたバージョン文字列にワイルドカードが含まれていますが、これは決定性と相容れません。バージョン文字列からワイルドカードを削除するか、このコンパイルで決定性を無効にします

イメージ
VisualStudio2017をアップデート(15.8.7)した後に、新しいプロジェクトを作って、バージョン番号のところに「1.0.0.*」と設定したら、エラーが出るわけです。

プロセスのメモリ使用量を測定する手順

タスクマネージャーに表示されている「メモリ(プライベートワーキングセット)」と同じ値を表示するには、PerformanceCounterを使う。Process.PrivateMemorySize64 ではだめ。Google+からコピーした記事。2013/9/12

VBAのサンプル集

VBAのサンプルコードをまとめておく。いろいろできる。 Google+から引っ越した。2018/10/10

VB6での文字列のカウント方法(謎)

イメージ
Goolge+が無くなると聞いたので、いくつかの記事をこちらへコピーしておこう。これは2013/11/22に書いた記事。 VB6でのテキスト文字列のカウント方法。昔のソースコードを探していくと、テキストの文字列をカウントする調査ソフトが見つかった。昔、悩んだ記憶があるなあ。

XPS Viewerの代わりになるアプリ?

イメージ
Windows10の2018年の春のアップデートで、XPS Viewerが消えたという話は前に書いた。 XPS Viewer はどこにあるか? 上の記事では、「アプリと機能」から追加できると書いたのだが、ネットにつながっていないとそれも出てこないらしい。事務所のオフラインのパソコンで追加できないという話を聞いた。

フレームワークの和暦の対応状況

イメージ
改元も近づいてきたので、「2020/7/7」を和暦で表示するアプリを作って、.NET Framework 4.6.2 と 3.5 でそれぞれビルドして動かしてみた。フレームワークによって、和暦の扱いは違うのか?

zipファイルを調べてみた

イメージ
.NET Frameworkの圧縮クラスを使って作ったzipファイルが、別のシステムで「展開できない」ということが起きた(らしい)。どういうことかと調べてみた。

DataGridViewの行の左端に色を付ける方法

イメージ
DataGridViewの行の左端に色を付けたいときの手順をまとめる。

テーブルを作る処理を整理する試み(1)

イメージ
10個以上のテーブルをアクセスするアプリで、テーブルの管理を楽にしたいと思っていろいろ試したことを記録する。

varchar をデータ型 numeric に変換中に、算術オーバーフロー エラーが発生しました。

SQL Serverで頭記のエラーが起きたときは、文字列の数字を数値型の値に変換しようとして桁があふれた場合が多い。 たとえば '123456789012' という数字を0という数値と比較すると、数字を数値に変換して比較しようとして桁あふれが(算術オーバーフロー)が起きる select 1 where '123456789012' = 0 SQLServer2014だとエラーメッセージが少し変わって下記のようになる。 varchar の値 '123456789012' の変換が int 型の列でオーバーフローしました。 数字を数値に変換するSQLを修正すれば、このエラーは消える。テーブル設計がひどくて、varchar型の列に数字を登録して数値として扱う運用をしていたりすると、なかなか簡単ではないかもしれない。 * ここからは事例の紹介。 SQL Serverで何気ないSQLが急にエラーになってびっくりすることがある。たとえば、このSQLは調子よく動いていたのだが、データによってエラーが起きて、あたふたしてしまった。 select case when isnull([機関番号],0) = 0 then 5521111111 else [機関番号] end このSQLには1つ問題があって「機関番号」がvarchar(10)の列というのがミソ。ここに '5555555555' という大きな数字を登録したら、エラーが起きた。 エラーの原因を調べるためにSQLを少し書き換えてみる SQL(1) select case when isnull('5555555555', 0) = 0 then 5521111111 else 0 end SQL(2) select isnull('5555555555', 0) SQL(3) select case when isnull('5555555555', '') = '' then 5521111111 else 0 end SQL(4) select case when 1=0 then 5521111111 else '55555555

DataTableの内容をエクセルにコピーする方法

アプリでデータをエクセルへコピーするときは注意すべきことがある。エクセルではデータが自動変換される。 全角数字「12345」は半角数字「12345」に変わる 頭に「0」が付いている「00012345」は「12345」に変わる 日付「2017/7/7」が数値に変わる(ことがある) 「-」でつながった数字「7-7」が日付の「7/7」に変わる エクセルにデータをコピーするときは、上記のことに気を付けないといけない(場合もある)。数字だけコピーしてOKなら、悩むことは無い。(2018/7/25追記)

.NET Framework 3.5.1 と 4.6.2 でVSTOの動作が違う

イメージ
エクセルにデータを貼り付けるアプリをC#で作っているのだけど、.NET Frameworkのバージョンの違いで動作が違うことに気がついたので、記録しておきます。

WMI Provider Hostが暴走状態

イメージ
アプリをテストしようとAzureに仮想PCを作ってみたら、ものすごく動作が遅いのです。何事だろうとタスクマネージャーを開いてみると、1つのプロセスがCPUを90%も使っていました。なんだこれ、、、

アプリの設定を読み書きする

イメージ
アプリの設定を保存するとしたら、以前はINIファイルを使ったり、レジストリに書き込んだりしたものだが、最近は「設定」を使うことにしている。

Listの並べ替え(SortとOrderByメソッド)

Listを並べ替えするとき、以前はSortメソッドを使っていた。これはリストの中身を並べ替えるので、こんな風に使う。 lst.Sort(); こういう風には使えない。 lst2 = lst.Sort();  // エラー ちょっといけてないね。 LinqだとOrderByメソッドがあるので、いい感じに書けるようになった。 lst2 = lst.OrderBy(n => n); 素晴らしい。

XPS Viewer はどこにあるか?

イメージ
仮想PCを作ってアプリのテストをして気がついた。アプリにはxpsファイルを出力する機能があって、そのテストでxpsファイルを表示しようとしたところ、「XPS Viewer」が無い!

管理者特権が必要です

イメージ
アプリのテストをしようと、仮想PCを作ってアプリをセットアップして、そういえばエクセルも要るなあと、Office365をインストールしようとしたら、エラーが出るわけです。

SQLの問い合わせがタイムアウトするとき

SQLを実行するときに長く時間がかかるとタイムアウトするわけです。トランザクションをしながら実行すると、トランザクションもタイムアウトすることがあります。

LinqでDictionaryを作る方法

イメージ
DictionaryデータをLinqを使って短い行数で作る方法をまとめてみる。

Xamarin Live Player を使いたい

イメージ
久しぶりにスマホアプリにチャレンジと云うことで、Xamarinをやってみた。MSDNに載っているサンプルを作って動かそうとしてみたのだけど、まあ、そんなに簡単には動きませんな。

64ビットのエクセルアドイン

イメージ
Officeソフトも64ビット版が入っていることが多くなって、エクセルアドインも64ビットのエクセルで動かしたいというのが自然な流れとなった。しかし、C#で作ったアドインはCOMアドインだから32ビットでしか動かない、、、

デバッグ実行時の例外の振る舞い

デバッグ実行すると異常値をチェックしてメッセージを表示するのだけど、ビルドしてEXEファイルを動かすと、異常値のチェックで例外が発生してしまう。 これは、デバッグ環境と実行環境の違いによる面倒なエラーなのか、、、

エクセル2016でもUTF8のCSVファイルを開いたら文字化けする

イメージ
CSVファイルをエクセルで編集して保存したら文字化けしたと云うトラブルが、周囲で時々起きるので、その対策をまとめてみる。「エクセルを使うな」と云う意見もあるだろうけど、エクセルがないと仕事にならないしね。

グラフの横軸の目盛をセル数と一致させる

イメージ
エクセルのグラフは横軸、縦軸が自動的に調整されてありがたいのだが、たまに、軸の目盛間隔を固定したいことがある。

VisualStudioでも正規表現で置換ができる

イメージ
その昔、Viを使っているときは行編集モードで正規表現を使って一括変更とかしたものだが、VisualStudioでも正規表現を使った置換ができるのだった。

変数の宣言をインライン化できます

VS2017を使っていると、頭記の警告メッセージが表示されるわけです。

メソッドの中にメソッドを定義できた

メソッドの中にメソッドを定義できるのを最近知った。ローカルメソッド?