【C#】構成システムを初期化できませんでした。エラーが発生する

<エラー内容>

System.Configuration.ConfigurationErrorsException: ‘構成システムを初期化できませんでした。’

内部例外
ConfigurationErrorsException: config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。

<原因>

App.configファイルに、<configSections>を追加した際、既に存在していた<startup>よりも後に記載したところ、上記エラーが発生。

<configuration>の開始タグ直後に、<configSections>を移動したところエラーは出なくなった。

(良く分からないが、この仕様は変なのでは???)

【Visual Studio2017】コマンドラインからビルドすると「8000000A」エラーが発生する

現象

devenv.exeをコマンドラインから実行し、ソースをビルドすると、
ERROR: An error occurred while validating. HRESULT = ‘8000000A’
が発生してビルドに失敗する。 続きを読む 【Visual Studio2017】コマンドラインからビルドすると「8000000A」エラーが発生する

【C#】【SQL Server Compact】接続時に0x80004005エラーが発生する

エラー内容

System.Data.SqlServerCe.SqlCeException (0x80004005): Unable to load the native components of SQL Server Compact corresponding to the ADO.NET provider of version 8876. Install the correct version of SQL Server Compact. Refer to KB article 974247 for more details.
場所 System.Data.SqlServerCe.NativeMethods.LoadNativeBinaries()
場所 System.Data.SqlServerCe.SqlCeConnection..ctor()
場所 System.Data.SqlServerCe.SqlCeConnection..ctor(String connectionString)

続きを読む 【C#】【SQL Server Compact】接続時に0x80004005エラーが発生する

【C#】クエリ式でLeft Joinする

table1とtable2をleft joinするサンプル

var record = (from t1 in table1
              join t2 in table2
              on t1.ID equals t2.ID into tmp
              from joinTable in tmp.DefaultIfEmpty()
              select new
              {
                  t1.ID,
                  t1.name,
                  t2Name = joinTable.name /*nameが被っているので、別名を設定*/
              }
              );

 

【EntityFramework】「値 NULL を挿入できません。この列では NULL 値が許可されていません」が発生する

Entityに値を設定したにも関わらず「値 NULL を挿入できません。この列では NULL 値が許可されていません」エラーが出て困った。

主キーが単一でかつ、id列で無い場合は、[DatabaseGenerated(DatabaseGeneratedOption.None)]
と記載することでInsertできるようになった

    public class table1
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int hogeNo { get; set; }
                    :

 

 

 

 

【C#】DataTableのSelect高速化

Selectの前に、DefaultView.Sortを呼び出してIndexを作成することで高速化できる。(何度もSelectする状況を想定)

dataTable.DefaultView.Sort = "FIELD_NAME";
dataTable.Select("FIELD_NAME = 'value'");

ちなみに、Selectで指定する値は数値でも文字列でも「’」で囲んでおくのが無難。
エラー内容は忘れたが、数値型の列を数値でSelectしたところ謎の例外エラーが発生して困った際に「’」で囲んだらエラー回避できた・・・