なべひろBlog

プログラミングをメインに仕事に関するアレコレを発信しています。

移転

移転

C#でNpgsqlを使ってPostgreSQLへアクセス【NpgsqlDataAdapterでSELECT】

今まではクエリ文を実行後、データを1個ずつ取得していましたがNpgsqlDataAdapterとDataTableを利用し、まとめてデータを取得する方法の解説です。 速度的には遅いんじゃ?と予想される方も多いかと思います。 私も遅いと予想していますが、今時なPCで耐えれ…

C#でNpgsqlを使ってPostgreSQLへアクセス【Prepare】

NpgsqlのPrepareメソッドに関して検索しても...出てこないw と言う事で色々調べならが実際効果があるのか考察してみたいと思います。 もくじ はじめに ベンチマークテスト 普通にSELECT文をループする WHEREの条件をパラメータとして与えてSELECT NpgsqlComm…

C#でNpgsqlを使ってPostgreSQLへアクセス【Transaction】

トランザクションはあまり多くの説明は必要としないかと思われますのでサクッとやってしまいます。 どちらかと言えばロールバックが発生した後の処理をどうするかが悩ましい所かもしれません。 私の作成するサンプルソースファイルは 今回のサンプルソースは…

C# 小技集

C#

検索すれば出てきますが探すのも面倒な時の自分用備忘録な記事です。 全てMVVMなWPFを用いて自分で動作確認をやった内容です。 もくじ 例外が発生した場所を特定する マウスカーソルの状態を変える シャットダウンを検出 Encoding.GetEncodingで例外が出る時…

C#でNpgsqlを使ってPostgreSQLへアクセス【SELECT】

もくじ はじめに 基本的なSELECT データベーステーブルのn番目のカラムデータを取得 SELECTのn番目のカラムデータを取得 NpgsqlCommand.FieldCountでカラム数を参照 DbDataReader.GetValueで取得 型を明確にして取得 時刻データを取得してみる 浮動小数点 配…

C#でNpgsqlを使ってPostgreSQLへアクセス【INSERT】

はじめに まずはデーテベーステーブルにデータを入れなければ話は始まりません。 と言う事で3つのINSERT手法を解説したいと思います。 尚、以下のサンプルコードを基に記述したのにビルドエラーが出る場合は「using System.Data;」が抜けている可能性があり…

C#でNpgsqlを使ってPostgreSQLへアクセス【RANGEパーティションのあるテーブル作成】

はじめに 今回は範囲を指定したパーティションテーブルの作成を行います。 範囲といえば蓄積した値ごとや年ごとの値に振り分けるなどがあります。 年ごとに関しては別の手法も併せて紹介したいと思います。 Npgsqlの本家情報は 私の作成するサンプルソースフ…

C#でNpgsqlを使ってPostgreSQLへアクセス【LISTパーティションのあるテーブル作成】

はじめに データベースに慣れている方なら特に問題はないと思いますが、ついでにPostgreSQLのバージョン10から使えるようになった宣言的パーティションの手法も含め解説したいと思います。 宣言的パーティションとは1つのテーブルを条件に則った形で分割する…

C#でNpgsqlを使ってPostgreSQLへアクセス【テーブル作成の基礎】

はじめに 接続ができたら次はデータベーステーブルを作成してみます。 バージョン10から使えるようになった宣言的パーティションを含めて解説しようかと思いましたが思いほのか文字数が多くなり分かりにくくなる可能性もあるのでまずは基礎的な手法の説明を…

C#でNpgsqlを使ってPostgreSQLへアクセス【接続する】

はじめに 2020年初めにEntityFrameworkを使ったPostgreSQLへアクセスする記事を書きましたが、その後も幾つかEntityFrameworkを用いたアプリを作る中で不満点も出てしまい、昔のようにクエリを直に書いたほうが自分的には分かりやすくクエリのテクニックもC#…

C#で負荷をかけず取りこぼす事なくログを出力する

C#

不具合が起きた時、不具合の原因を特定する情報として活用できるのがログです。 但しファイルアクセスはプログラム側からしてみればとても遅い処理なので、あまり影響されたくありません。 エラーによっては大量のログが出力されるかもしれません。 プログラ…

C# switch式の使い方

C#

Ver8から導入されたswitch式ですが、少し前まで存在が分かりませんでした。 使ってみたらとても便利に思いましたので、どんな手法で使えるか、幾つか試してみます。 単純なswitch式 単純に評価値を基に結果を出力します。 私の場合過去の事例を見ると、この…

C#でSystem.Net.SocketsのxxxAsyncを使ったTCPクライアントを作ってみる

前回はxxxAsyncを用いたTCPサーバを作ってみましたがTCPクライアントを作ってみます。 以前作ったTCPクライアントはこちらになりますが、これよりはコード数が少なくなります。 但し、前記事のTCPサーバを作った時と同じような注意点と、TCPサーバとは違う注…

C#でSystem.Net.SocketsのxxxAsyncを使ったTCPサーバを作ってみる

以前C#の非同期TCPサーバのサンプルを作った時はBeginxxxメソッドを使用したサンプルコードを作成しましたが、今回はxxxAsyncを使ったTCPサーバを作成してみます。 前回は きっかけは調べ物をしていた時に偶然にxxxAsyncメソッドを見つけ、何が違うのか調べ…

WPFアプリケーションを自動更新してみる

C#

はじめに 社内配布のアプリケーションで煩わしいのが更新後の配布です。 全ての人がパソコンに精通しているとは限りませんので、安全を考えるとパソコンを知っている人に依頼する事になります。 結局は誰かが煩わしい思いをするので、それなら特定のフォルダ…

PrismのUserControlを動的に配置する

はじめに かなり前にWinFormsでカスタムコントロールを動的に生成し任意の場所に配置するアプリを作りました。 目的は部屋にある機械の状態監視です。 設置された機械と同じレイアウトの画面なら作業者はどの機械かの判断が簡単にできます。 機械は増えたり…

Prismで複数のページを持ったアプリを作ってみる

はしめに 私が作るアプリケーションはメイン画面と設定画面など複数の画面で構成されるのがほとんどです。 以前記事にしたIDialogServiceを使って設定ダイアログを出してもいいですが、手段は複数持っておき状況に合わせて使い分けしたいと思い、WinFormsで…

C# 2行で工程能力のCp、Cpk計算

C#

はじめに 私の会社は機械部品の製造がメインです。 非常に精密な部品であるため製品の品質を管理し不良品を作らないのは大事な事です。 私は工程管理のプロではありませんが、製造部の管理者より製品寸法に関する情報を表示し品質を管理したい要望は多いです…

C#で今時な書き方の非同期なTCPクライアントを作ってみる

前回からだいぶ時間が経ってしまいましたが、クライアント側の今時な(C# Ver8)書き方を紹介します。 尚、サーバと比較すると名称に一貫性がないかもしれませんがご了承ください。 基となるマイクロソフトのコードは ソースはこちらになります。 尚、今回は…

C#で今時な書き方の非同期なTCPサーバを作ってみる 詳細編

もくじ Server ~Server message logWrite Open accept acceptCallback receptionCallback transmissionCallback Close StateObject 前回紹介したTCPサーバのメソッドを少しだけ細かく紹介したいと思います。 まあ、紹介したところで触る部分は少ないのであま…

C#で今時な書き方の非同期なTCPサーバを作ってみる 概要編

もくじ 準備 ReactiveProperty.WPF System.Text.Encoding.CodePages System.ServiceModel.Primitives 主なメソッド Server ~Server message Open accept acceptCallback readCallback writeCallback Close StateObject C#を用いたTCPサーバのサンプルソース…

意味を持たせた回路図を書く

KiCadに限った話ではないのですが、現存するカテゴリーで当てはまるのはKiCadなのでKiCadのネタとして書きます。 まずは2つの簡単な回路図を見てください。 電源コネクタとマイコンとコンデンサだけのシンプルな構成です。 この2つの回路図でネットリストを…

KiCadで基板設計をしてみる ベタGNDの配置

前回作成した回路で電気的な問題は起こらず動作するかと思いますが、もう1ステップ品質を上げた基板にしてみます。 ここで言う品質とはノイスなどに関する品質です。 欧州に輸出する場合、CE規格に適合しているかが問題になります。 CE規格はいろんな部分が…

KiCadで基板設計をしてみる

実物ができる工程の最後になります。 尚、基板設計においてはパターン幅と電流の関係、パターン間のクリアランスなどが定められています。 この情報はGoogleなどで「プリント基板」「設計基準書」で検索するといっぱい出てきますのでご存じない方はそこから…

KiCadで回路図を書いてみる

やっと回路図を書くところまで来ました。 でも、回路図を書くのは難しくありません。 必要な部品を配置して線で繋ぐだけです。 難しいのは電子回路図を考えるスキルですが、それをやり始めたらキリがないので割愛します。 尚、シンボルライブラリに「power」…

KiCadにRSコンポーネンツのPCB Part Libraryを活用してみる

フットプリントは単純な形状なので作る事自体は大変ではないですが、もし寸法を間違えそれに気づかず基板を作ったら基板が無駄になるだけではなく、基板製造に必要な物も無駄になってしまいます。 そうならないように実寸で印刷してスケールを当てて寸法を測…

KiCadの新しいライブラリを作る

いよいよ新しいライブラリを作ってみたいと思います。 用意するのは作るICのデータシートです。 作るのは前々回でチラッと出ていたMicrochip(旧Atmel)のAtmega328Pです。 作り方はは個人差があると思いますが、私の場合はピンを先につくります。 何故ならピ…

KiCadのライブラリを編集する

ようやくライブラリを編集ところまで来ました。 前々回に自分のライブラルファイルを作り、とりあえず抵抗を基本ライブラリからコピーしましたが、やっぱり抵抗はギザギザがデフォだよなという事で編集してみたいと思います。 メインとなるプロジェクトウィ…