Försöker skapa en databas för första gången med C# Data.SqlClient.SqlException.

Permalänk

Försöker skapa en databas för första gången med C# Data.SqlClient.SqlException.

Hej.
Detta är skolarbete. Och enligt mina instruktioner så borde detta

protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseSqlServer(@Server=(localdb\MSSQLLocalDB;Database=GameDb); }

Skapa en databas, det är i alla fall så jag tolkar det. Men till svar får jag

'Microsoft.Data.SqlClient.SqlException' in Microsoft.EntityFrameworkCore.dll
An unhandled exception of type 'Microsoft.Data.SqlClient.SqlException' occurred in Microsoft.EntityFrameworkCore.dll
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SNI_PN11, error: 26 - Error Locating Server/Instance Specified)

Och jag vet inte vad jag ska göra. Det verkar som dom vill ha ett namn men vad för namn och vart hittar jag det? Och om inte hur skapar jag en sådan server.

Den relevanta koden.
Den är uppdelad i två olika projekt, ena är ett class library och båda har EntityFrameWorkCode, design, relational, sqlserver och tools installerade.

namespace CreateDataBase { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { //PL. public MainWindow() { InitializeComponent(); } private void Create_Session_Click(object sender, RoutedEventArgs e) { var db = new DALContext(); string id = Session_Id.Text; string type = Session_Type.Text; string date = Session_Date.Text; int players = Convert.ToInt32(Session_Players.Text); int cardsPlayed = Convert.ToInt32(Session_CardsPlayed.Text); Session session = new Session { SessionId = id, SessionType = type, SessionDate = date, SessionPlayers = players, SessionCardsPlayed = cardsPlayed }; db.Sessions.Add(session); db.SaveChanges(); var query = from s in db.Sessions orderby s.SessionId select s; foreach (var item in query) { Display_Db.Items.Add(item); } }

namespace DAL { public class Session { public string SessionId { get; set; } public string SessionDate { get; set; } public int SessionPlayers { get; set; } public string SessionType { get; set; } public int SessionCardsPlayed { get; set; } } }

namespace DAL { public class DALContext : DbContext { protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseSqlServer(@Server=(localdb\MSSQLLocalDB;Database=GameDb); } public DbSet<Session> Sessions { get; set; } } }

Tackar i förväg.

Visa signatur

Så jag kommer ihåg. [code][/code]

Permalänk
Avstängd

Har du SQL Server installerat?

Permalänk
Medlem

Börja med att installera SQL server så den har någonstans att ansluta: https://www.microsoft.com/en-us/sql-server/sql-server-downloa...

här har du några exempel på hur connection-strängen ska se ut: https://www.connectionstrings.com/sql-server/

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem
Skrivet av Haptic:

här har du några exempel på hur connection-strängen ska se ut: https://www.connectionstrings.com/sql-server/

LocalDb-connection-strängen i den befintliga koden bör fungera utmärkt, givet at LocalDb är korrekt installerat. Dokumenteationen finns här.

Det ska även gå fint att koppla upp Management Studio mot LocalDb. Se till att du kan göra det, det hjälper förståelsen att kunna titta på databasen. Det finns även inbyggda verktyg i Visual Studio, men Mangement Studio har en del fitjurs som man kan behöva i längden.

LocalDb är en enkel databas lämplig för utveckling. Den beter sig väldigt likt en vanlig SQL server, men tar betydligt mindre resurser. En vanlig SQL server lägger som default beslag på så mycket minne den bara kan på den burk den kör på.

Permalänk
Medlem

Jag upplever att LocalDB kan vara lite lynnig o inte alltid helt lik SQL Server. Rekommenderar därför att du installerar SQL Express, som är precis som SQL Server, men gratis att köra

https://www.microsoft.com/en-us/download/details.aspx?id=1010...

och SSMS - Sql Server Management Studio. för att kunna se dina tabeller etc

https://learn.microsoft.com/en-us/sql/ssms/download-sql-serve...

Permalänk
Inaktiv
Skrivet av Tea42BBS:

Jag upplever att LocalDB kan vara lite lynnig o inte alltid helt lik SQL Server. Rekommenderar därför att du installerar SQL Express, som är precis som SQL Server, men gratis att köra

https://www.microsoft.com/en-us/download/details.aspx?id=1010...

och SSMS - Sql Server Management Studio. för att kunna se dina tabeller etc

https://learn.microsoft.com/en-us/sql/ssms/download-sql-serve...

Eller Azure Data Studio om man vill kunna ändra tema och slippa bli bländad 😁
Den följer med i installationen av SSMS dessutom.

Permalänk
Medlem
Skrivet av MaskenLilja:

Hej.
Detta är skolarbete. Och enligt mina instruktioner så borde detta

protected override void OnConfiguring(DbContextOptionsBuilder options) { options.UseSqlServer(@Server=(localdb\MSSQLLocalDB;Database=GameDb); }

Skapa en databas, det är i alla fall så jag tolkar det. Men till svar får jag

Du saknar en parantes i din connection string. Så här ser det ut om du vill koppla dig mot en fil:

Server=(localdb)\v11.0;Integrated Security=true;AttachDbFileName=C:\MyFolder\MyData.mdf;

Så här ser det ut om du vill koppla dig mot en instans:

Server=(localdb)\v11.0;Integrated Security=true;

Men du måste skapa instansen först:

SqlLocalDB.exe create MyInstance SqlLocalDB.exe start MyInstance

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem
Skrivet av KAD:

LocalDb-connection-strängen i den befintliga koden bör fungera utmärkt, givet at LocalDb är korrekt installerat. Dokumenteationen finns här.

Det ska även gå fint att koppla upp Management Studio mot LocalDb. Se till att du kan göra det, det hjälper förståelsen att kunna titta på databasen. Det finns även inbyggda verktyg i Visual Studio, men Mangement Studio har en del fitjurs som man kan behöva i längden.

LocalDb är en enkel databas lämplig för utveckling. Den beter sig väldigt likt en vanlig SQL server, men tar betydligt mindre resurser. En vanlig SQL server lägger som default beslag på så mycket minne den bara kan på den burk den kör på.

Skrivet av Tea42BBS:

Jag upplever att LocalDB kan vara lite lynnig o inte alltid helt lik SQL Server. Rekommenderar därför att du installerar SQL Express, som är precis som SQL Server, men gratis att köra

https://www.microsoft.com/en-us/download/details.aspx?id=1010...

och SSMS - Sql Server Management Studio. för att kunna se dina tabeller etc

https://learn.microsoft.com/en-us/sql/ssms/download-sql-serve...

LocalDb är en del av SQL Server Express.
LocalDb's connection-strängar finns också på länken ovan

Visa signatur

CPU: Ryzen 9 3900x Noctua NH-D14 MOBO: TUF Gaming X570-PLUS GPU: GTX 980 RAM: 32 GB 3200 MHz Chassi: R4 PSU: Corsair AX860 Hörlurar: SteelSeries 840 Mus: Logitech G502 Lightspeed V.v. nämn eller citera mig för att få svar.

Permalänk
Medlem
Skrivet av Haptic:

LocalDb är en del av SQL Server Express.
LocalDb's connection-strängar finns också på länken ovan

Är det verkligen så? För den finns direkt i Visual Studio - vad jag förstår så tillåter inte LocalDB några yttre connections alls utan man kan bara connecta via "local" eller "."?

Kanske jag som hade otur när jag tänkte

Hur som, Lycka till till TS...hoppas du kommer tillbaks till tråden o läser allt

mvh Lazze

Permalänk
Skrivet av snajk:

Har du SQL Server installerat?

Behöver jag det. Enligt mina instruktioner ska det gå genom localdb. Jag har EF sql nuget instrallerat.

Visa signatur

Så jag kommer ihåg. [code][/code]

Permalänk
Medlem
Skrivet av MaskenLilja:

Behöver jag det. Enligt mina instruktioner ska det gå genom localdb. Jag har EF sql nuget instrallerat.

Har du installerat "ASP.NET and web development" när du körde Visual Studio Setup så ska du ha LocalDB, och det antar jag att du har gjort. Vilken version av Visual Studio kör du?

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Medlem
Permalänk
Avstängd
Skrivet av MaskenLilja:

Behöver jag det. Enligt mina instruktioner ska det gå genom localdb. Jag har EF sql nuget instrallerat.

Jo du behöver en databas för att kunna använda en databas. Tidigare ingick det med VS om man valde rätt vid installation, men inte på senare år. Installera SQL server express bara och välj localdb under installationen. Du behöver inte SSMS om du har VS (kanske beroende på vilka val du gör), det finns inbyggt där.

Permalänk
Medlem
Skrivet av snajk:

Jo du behöver en databas för att kunna använda en databas. Tidigare ingick det med VS om man valde rätt vid installation, men inte på senare år. Installera SQL server express bara och välj localdb under installationen. Du behöver inte SSMS om du har VS (kanske beroende på vilka val du gör), det finns inbyggt där.

Jo, det följer fortfarande med, rätt säker på att det är default om man väljer "ASP.NET and web development"-workloaden, mer finkornigt än så brukar jag själv inte välja komponenter i alla fall.

Visa signatur

The power of GNU compiles you!
"Often statistics are used as a drunken man uses lampposts -- for support rather than illumination."

Permalänk
Medlem
Skrivet av kode:

Jo, det följer fortfarande med, rätt säker på att det är default om man väljer "ASP.NET and web development"-workloaden, mer finkornigt än så brukar jag själv inte välja komponenter i alla fall.

<Uppladdad bildlänk>

Jag är ganska säker jag med, jag har inte installerat SQL Server Express manuellt, men den är installerad.

Det skulle vara intressant att veta vilken version av VS TS kör, för jag har för mig att connection strängarna har sett litet annorlunda ut genom åren.

Visa signatur

Bra, snabbt, billigt; välj två.

Ljud
PC → ODAC/O2 → Sennheiser HD650/Ultrasone PRO 900/...
PC → S.M.S.L SA300 → Bowers & Wilkins 607

Permalänk
Avstängd
Skrivet av kode:

Jo, det följer fortfarande med, rätt säker på att det är default om man väljer "ASP.NET and web development"-workloaden, mer finkornigt än så brukar jag själv inte välja komponenter i alla fall.

<Uppladdad bildlänk>

Ja ok, det var ju bra. Jag har kört SQL server i en container några år nu så jag har inte så bra koll på installationen längre. Då är det bara att ta ner:

sudo docker pull mcr.microsoft.com/mssql/server:2022-latest

Och köra:

sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<password>" \ -p 1433:1433 --name sql1 --hostname sql1 \ -d \ mcr.microsoft.com/mssql/server:2022-latest