たにーの楽しい闘争

日々の気になる事を書いていきます

C#

AzureStorageEmulatorを使ってAppendBlob.CreateOrReplace()を実行するとエラーになる時の対処方法

状況 Azure Storage Emulatorのバージョン:5.7.0.0 やりたい事 AzureStorageEmulatorを使ってローカルのタスクテーブルから値を取得し、同じstorageAccountのBlobにAppendBlobを使って取得したレコードをcsvとして吐き出したい。 問題 下記が表示される Mes…

大量データをAppendBlobで書き込む時に出るBlockCountExceedsLimit エラー (HTTP ステータス コード 409 – 競合)を解決する方法

問題 AppendBlobの仕様により、1ファイルに対して50000回しか書き込みができない。 例えば日次バッチで常時20万レコードをcsvに書き込みたい場合に1行ずつループして書き込むと、50001回目の書き込みで、下記のエラーが発生する BlockCountExceedsLimit エラ…

【C#】GUIDの生成方法

C#

ソースコード static void Main(string[] args) { //GUIDの生成 Guid sample = Guid.NewGuid(); Console.WriteLine(sample); } 実行結果 実行するたびに違うGUIDが出力される 67720386-88d6-4572-ac13-f08143336531

【C#】Dictionaryに要素を追加or上書きする方法

C#

概要 Dictionaryに要素を追加する方法は状況によって変える必要がある。 結論 既に存在するキーを追加しようとした時、例外を出したい場合 Dictionary名.Add(Key, Value) 既に存在するキーを追加しようとした時、上書きしたい場合 Dictionary名[Key] = Value…

【AzureBlob】Blobから取得したファイルの中身を読んでメモリ上で加工する方法

概要 var file = container.GetBlobReference("ファイル名"); string text = null; using (var ms = new MemoryStream()) { file.DownloadToStream(ms); ms.Flush(); var b = ms.ToArray(); text = System.Text.Encoding.ASCII.GetString(b); }

【AzureBlob】DownloadToStreamでAzure The remote server returned an error: (404) Not Foundが出た時の対処方法

概要 DownloadToStreamを使ってファイルを取得しようとしたら Azure The remote server returned an error: (404) Not Foundが発生。 結論 1,ファイルが置かれていない 2,ファイル名が間違っている etc.... 参考 https://stackoverrun.com/ja/q/4962433

【C#】DictionaryからKeyでValue(配列)の最初と最後を取得する方法

C#

概要 プログラム using System; using System.Collections.Generic; using System.Linq; namespace ConsoleApp { class Program { static void Main(string[] args) { Dictionary<string, int[]> test = new Dictionary<string, int[]>(); int[] par = { 178, 65, 15 }; test.Add("tanii", </string,></string,>…

【C#】UTCで取得してJSTに変換する方法

C#

概要 DateTime utcdt = DateTime.UtcNow; TimeZoneInfo jstZoneInfo = System.TimeZoneInfo.FindSystemTimeZoneById("Tokyo Standard Time"); DateTime jst = System.TimeZoneInfo.ConvertTimeFromUtc(utcdt, jstZoneInfo); 参考 docs.microsoft.com

【C#】AzureApplicationGatewayでHTTPリクエストに対して、502 Bad Gatewayが返ってきたときの対処方法

概要 swaggerからAzure API Appsを実行したら、下記のエラーが帰ってきた。 502 - Web server received an invalid response while acting as a gateway or proxy server. 502 Bad Gatewayが返る原因はいくつかあるみたいだが、今回は原因が接続タイムアウト…

【C#】SQLコマンドがタイムアウトした時の対処方法

C#

エラーメッセージ the timeout period elapsed prior to completion of the operation or the server is not responding 原因 CommandTimeoutの設定をしていないとデフォルトが30秒のため、それを超えるとエラーとなる。 今回はクエリも実行完了まで30秒以上…

【C#】 文字列の前に@をつけると?

C#

結論 文字列の前に@をつけるとエスケープする必要がなくなる 詳細 using System; namespace ConsoleApp { class Program { static void Main(string[] args) { string str1 = "C:\\Users\\tanii\\Documents"; string str2 = @"C:\Users\tanii\Documents"; Co…

【C#】文字列から数値だけを抽出する方法

C#

概要 using System; using System.Text.RegularExpressions; namespace ConsoleApp { class Program { static void Main(string[] args) { string str = "abcd1234efgh"; //文字列から数値だけを抽出 string after1 = Regex.Replace(str, "[^0-9]", ""); Con…

【C#】int.TryParseメソッドの使い方

C#

int.TryParseで何ができるか 結論、指定した文字列が数字に変換できるかどうかを判定する事ができます。 サンプルと実行結果 サンプル static void Main(string[] args) { int i = 0; string ok = "123";//指定する文字列 string ng = "EFG";//指定する文字…

【C#】LINQとラムダ式について

C#

※基礎すぎる記事です LINQで何ができるか 結論としては、 配列やコレクションの中のデータに対して、 条件を加えて取り出したり、加工したりする事ができます。 例えばこんな感じ。 static void Main(String[] args) { List<int> number = new List<int>(); number.Add</int></int>…