C# asp.net web コードファーストで落ちます。
投稿者 shu  (社会人)
投稿日時
2023/2/7 07:44:37
1.SQL Server Management Studioなどで接続の確認
(1) サーバー内での接続が可能か
(2) サーバー外からの接続が可能か?
2.MySQlModelの表す接続文字列が正しいか確認
(1) サーバー内での接続が可能か
(2) サーバー外からの接続が可能か?
2.MySQlModelの表す接続文字列が正しいか確認
投稿者 ケンケン  (社会人)
投稿日時
2023/2/7 08:59:39
1.接続方法は、ローカルDB((localdb)¥MSSQLLocalDB)です。
2.確認致します。
MySQlModelの表す接続文字列が正しいか確認
回答ありがとうございます。
2.確認致します。
MySQlModelの表す接続文字列が正しいか確認
回答ありがとうございます。
投稿者 ケンケン  (社会人)
投稿日時
2023/2/7 10:44:41
因みに、接続内容
<add name="MySqlModel" connectionString="data source=(LocalDb)\MSSQLLocalDB;
initial catalog=Web_SQL_Entity01.MySqlModel;
integrated security=True;
MultipleActiveResultSets=True;
App=EntityFramework" providerName="System.Data.SqlClient" />
※ 大丈夫と思います。
投稿者 shu  (社会人)
投稿日時
2023/2/8 07:45:36
接続出来ないエラーなので、接続先が間違っているか、準備が整っていないか、接続方法が間違っている
などだと思います。テーブルが用意されているのでlocaldbがインストールされていないということは
ないと思います。
マイクロソフトの説明サイトです。
https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver16
などだと思います。テーブルが用意されているのでlocaldbがインストールされていないということは
ないと思います。
マイクロソフトの説明サイトです。
https://learn.microsoft.com/ja-jp/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-ver16
投稿者 ケンケン  (社会人)
投稿日時
2023/2/8 12:49:19
回答ありがとうございます。
自宅で試した所上手く行きました。
会社のノートパソコンの環境に不具合があるかも知れません。
わたしも良く分かりません。
自宅で試した所上手く行きました。
会社のノートパソコンの環境に不具合があるかも知れません。
わたしも良く分かりません。
public class MySqlModel : DbContext
{
public MySqlModel()
: base("name=MySqlModel")
{
}
// 従業員エンティティ
public virtual DbSet<employee> employees { get; set; }
}
2.従業員エンティティ
public class employee
{
[Key]
// 主キー
public int EmpId { get; set; }
// 氏名
[StringLength(50)]
public string EmpName { get; set; }
// 誕生日
public DateTime Birthday { get; set; }
// 電話番号
[StringLength(50)]
public string TelNo { get; set; }
// 性別
public bool Sex { get; set; }
}
3.DB作成
public class CustomSeedInitializer : DropCreateDatabaseAlways<MySqlModel> //常にデータベースを再生成する。
{
protected override void Seed(MySqlModel context)
{
base.Seed(context);
//以降にcontextを使って初期データを投入するロジックを記す
//
var employee1 = new employee()
{
EmpId = 1,
EmpName = "土井",
Birthday = DateTime.Parse("1978-10-25"),
Sales = 10000,
TelNo = "011-111-0001",
DeptNo = 1,
Sex = true,
};
var employee2 = new employee()
{
EmpId = 2,
EmpName = "中村",
Birthday = DateTime.Parse("1975-2-3"),
Sales = 20000,
TelNo = "011-111-0002",
DeptNo = 2,
Sex = false,
};
context.employees.Add(employee1);
context.employees.Add(employee2);
context.SaveChanges();
}
}
4.dbの初期化実行
protected void Application_Start(object sender, EventArgs e)
{
//データベース初期化にはCustomSeedInitializerを使用する
Database.SetInitializer(
new CustomSeedInitializer());
}
5.dbの内容をhtml に表示
protected void Page_Load(object sender, EventArgs e)
{
string content = "";
//コンテキストクラスを作成
using (var context = new MySqlModel())
{
//従業員一覧を取得
var employees = context.employees;
//従業員一人一人について処理
foreach (var item in employees)
----------
上の箇所で落ちます。
※1
{
content += string.Format("Id:{0},Na:{1},birth:{2},Tel:{3},Sex:{4} <br />",
item.EmpId, item.EmpName, item.Birthday, item.TelNo, item.Sex ? "男性" : "女性");
}
//文字列を画面表示する(Literal1はLiteralコントロール)
Literal1.Text = content;
}
}
※1
System.Data.SqlClient.SqlException
HResult=0x80131904
Message=SQL Server への接続を確立しているときにネットワーク関連またはインスタンス固有のエラーが発生しました。サーバーが見つからないかアクセスできません。インスタンス名が正しいこと、および SQL Server がリモート接続を許可するように構成されていることを確認してください。 (provider: SQL Network Interfaces, error: 0 - [x89C5010A])
Source=.Net SqlClient Data Provider
スタック トレース:
<例外のスタック トレースを評価できません>
内部例外 1:
Win32Exception: Unknown error (0x89c5010a)
何方か分かる方ご教授お願い致します。