C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

C# 理解できないこと

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■98865 / inTopicNo.1)  C# 理解できないこと
  
□投稿者/ 初心のもの (33回)-(2022/01/07(Fri) 15:11:48)

分類:[.NET 全般] 


 
  毎日すいません
 本日は、私にはどこがどういけないのか全く分からない状態で1日経過しています。
 
    public partial class Model1 : DbContext
    {
        public Model1()
            : base("name=TestContext") ←ここでエラーが起きる
        {
        }

        public virtual DbSet<Table_1> Table_1 { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Table_1>()
                .Property(e => e.ID)
                .IsFixedLength();

            modelBuilder.Entity<Table_1>()
                .Property(e => e.Name)
                .IsUnicode(false);

            modelBuilder.Entity<Table_1>()
                .Property(e => e.HName)
                .IsUnicode(false);

            modelBuilder.Entity<Table_1>()
                .Property(e => e.EnName)
                .IsUnicode(false);

            modelBuilder.Entity<Table_1>()
                .Property(e => e.Gender)
                .IsFixedLength();
        }
    }

  エラー内容
 System.TypeInitializationException: ''System.Data.Entity.Internal.AppConfig' のタイプ初期化子が例外をスローしました。'
 1つ目
 ConfigurationErrorsException: 構成システムを初期化できませんでした。
 2つ目
 ConfigurationErrorsException: config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。 (C:\Users\81903\Desktop\c#\korekore\korekore\bin\Debug\korekore.exe.Config line 15)

 log4netを使用して、履歴機能を作ろうとして.configをいじったのが原因泣きがしますがどこを修正したらいいかさっぱりわからない状態です。。

 

引用返信 編集キー/
■98866 / inTopicNo.2)  Re[1]: C# 理解できないこと
□投稿者/ WebSurfer (2400回)-(2022/01/07(Fri) 15:20:50)
No98865 (初心のもの さん) に返信

>  本日は、私にはどこがどういけないのか全く分からない状態で1日経過しています。

前のスレッドで、そんなところはもうとっくに通り越していて、DB に接続してデータを取得
して、DataGridView に表示できていたのではないのですか?


> public partial class Model1 : DbContext
> {
> public Model1()
> : base("name=TestContext") ←ここでエラーが起きる
> {
> }

構成ファイルはどうなっているのですか? "name=TestContext" というのは TestContext
という名前の接続文字列が構成ファイルにあるということですが、理解してますか?


引用返信 編集キー/
■98867 / inTopicNo.3)  Re[1]: C# 理解できないこと
□投稿者/ WebSurfer (2401回)-(2022/01/07(Fri) 15:23:37)
No98865 (初心のもの さん) に返信

接続文字列とモデル
https://docs.microsoft.com/ja-jp/ef/ef6/fundamentals/configuring/connection-strings
引用返信 編集キー/
■98868 / inTopicNo.4)  Re[2]: C# 理解できないこと
□投稿者/ 初心のもの (35回)-(2022/01/07(Fri) 15:38:06)
No98866 (WebSurfer さん) に返信
> ■No98865 (初心のもの さん) に返信
>
>> 本日は、私にはどこがどういけないのか全く分からない状態で1日経過しています。
>
> 前のスレッドで、そんなところはもうとっくに通り越していて、DB に接続してデータを取得
> して、DataGridView に表示できていたのではないのですか?

 できていました。
 皆さんから教えていただいたことしてdatagridviewにTableデータを表示できていたのですが
 log4netをいれて構成ファイルをいじってから止まるようになってしまいました


> 構成ファイルはどうなっているのですか? "name=TestContext" というのは TestContext
> という名前の接続文字列が構成ファイルにあるということですが、理解してますか?

<connectionStrings>
<add name="TestContext" connectionString="data source=localhost;initial catalog=Test;persist security info=True;user id=sa;password=operator;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>

 あることは理解しています

<log4net>
<!--▼ファイル出力用[RollingFileAppender]-->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<param name="RollingStyle" value="date" />
<param name="File" value=".\Log\udemy1" />
<param name="StaticLogFileName" value="false" />
<param name="DatePattern" value="&quot;.&quot;yyyy-MM-dd&quot;.log&quot;" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %-5level [%thread] %identity %logger %message%newline" />
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="RollingFileAppender" />
</root>
</log4net>

 これをよくわからない箇所に追記してからがおかしくなりました
 消したとしてもエラーで動かない状態です。

引用返信 編集キー/
■98869 / inTopicNo.5)  Re[1]: C# 理解できないこと
□投稿者/ 魔界の仮面弁士 (3271回)-(2022/01/07(Fri) 16:30:23)
2022/01/07(Fri) 16:40:19 編集(投稿者)

No98865 (初心のもの さん) に返信
> ConfigurationErrorsException:
> config ファイルにつき 1 つの <configSections> 要素のみが許可されます。
> 要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。
> (C:\Users\81903\Desktop\c#\korekore\korekore\bin\Debug\korekore.exe.Config line 15)

app.config ファイルの内容を破損させてしまい、15 行目で解析エラーになっていますね。

エラーメッセージを見た限りでは、configSections が複数存在しているか、
ルート configuration 要素の最初の子要素が configSections 以外のものに
なってしまっていると指摘されているのだと思います。

しかしながら、 No98868 の内容は肝心な部分が端折られているのか、
configuration も configSections も見当たりません。



(1) XML の最上位の要素が、configuration 〜 /configuration の組になっていますか?
※最小構成だと「<configuration/>」ですが、現状は色々書かれているはず。

(2) configSections の無い XML ですか? それとも configSections がありますか?
 configSections が存在している場合、それは configuration の
 最初の子要素でなければならないため、connectionStrings よりも前に
 configSections を書かねばなりません。
 複数の configSections がある場合も NG です。
引用返信 編集キー/
■98870 / inTopicNo.6)  Re[3]: C# 理解できないこと
□投稿者/ WebSurfer (2402回)-(2022/01/07(Fri) 16:50:41)
No98868 (初心のもの さん) に返信

>  これをよくわからない箇所に追記してからがおかしくなりました
>  消したとしてもエラーで動かない状態です。

一日悩んで解決できなかったそうですが、それならゼロから新たなプロジェクトを作った
方が解決が早いと思います。app.config を見比べてみたら問題がどこか見つかるかも。
引用返信 編集キー/
■98888 / inTopicNo.7)  Re[1]: C# 理解できないこと
□投稿者/ HattariB (4回)-(2022/01/12(Wed) 08:55:42)
先人がご指摘くださってるから、もうお気づきでしょうけど、
エラーの追い方っつーか、見方について意識を変えると、ちょっと幸せになったりするかもしれないですね。

私の場合は、

結論→理由→詳細

というカタマリが、例外が発生して、過去を遡れる範囲で表示される
っつー感じで見てます。

つまり、詳細部分まで読んで、それからデバッグが始まるという事ですね。



No98865 (初心のもの さん) に返信
>
>
>
> 毎日すいません
>  本日は、私にはどこがどういけないのか全く分からない状態で1日経過しています。
>  
> public partial class Model1 : DbContext
> {
> public Model1()
> : base("name=TestContext") ←ここでエラーが起きる
> {
> }
>
> public virtual DbSet<Table_1> Table_1 { get; set; }
>
> protected override void OnModelCreating(DbModelBuilder modelBuilder)
> {
> modelBuilder.Entity<Table_1>()
> .Property(e => e.ID)
> .IsFixedLength();
>
> modelBuilder.Entity<Table_1>()
> .Property(e => e.Name)
> .IsUnicode(false);
>
> modelBuilder.Entity<Table_1>()
> .Property(e => e.HName)
> .IsUnicode(false);
>
> modelBuilder.Entity<Table_1>()
> .Property(e => e.EnName)
> .IsUnicode(false);
>
> modelBuilder.Entity<Table_1>()
> .Property(e => e.Gender)
> .IsFixedLength();
> }
> }
>
>   エラー内容
>  System.TypeInitializationException: ''System.Data.Entity.Internal.AppConfig' のタイプ初期化子が例外をスローしました。'
>  1つ目
>  ConfigurationErrorsException: 構成システムを初期化できませんでした。
>  2つ目
>  ConfigurationErrorsException: config ファイルにつき 1 つの <configSections> 要素のみが許可されます。要素が存在する場合、ルート <configuration> 要素の最初の子でなければなりません。 (C:\Users\81903\Desktop\c#\korekore\korekore\bin\Debug\korekore.exe.Config line 15)
>
>  log4netを使用して、履歴機能を作ろうとして.configをいじったのが原因泣きがしますがどこを修正したらいいかさっぱりわからない状態です。。
>
>  
引用返信 編集キー/
■98889 / inTopicNo.8)  Re[2]: C# 理解できないこと
□投稿者/ 初心のもの (37回)-(2022/01/12(Wed) 16:20:05)
No98888 (HattariB さん)
     (WebSurfer さん)
     (魔界の仮面弁士 さん) に返信

 返事が遅くなってしまい申し訳ありません。

>結論→理由→詳細
>
>というカタマリが、例外が発生して、過去を遡れる範囲で表示される
>っつー感じで見てます。

この考えで少しエラーに対してイラつきが緩和された気がします。

>最初の子要素でなければならないため、connectionStrings よりも前に
>configSections を書かねばなりません。
>複数の configSections がある場合も NG です。

複数あった</configSections>を消したら実行できました!

>一日悩んで解決できなかったそうですが、それならゼロから新たなプロジェクトを作った
>方が解決が早いと思います。app.config を見比べてみたら問題がどこか見つかるかも。

私的にはこれが一番聞きましたありがとうございます!





解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ