How can I convert an SqlCe database to Microsoft SQL Server? Now the SQL Server Compact (SQL CE) database type is unsupported, it’s recommended by Microsoft to upgrade to SQL Server. But how do you convert your SqlCe database? I’ll explain in this article, read on.
First you need to know you can recognize the SqlCe database file by its extension: .sdf. It’s often used with classic ASP websites, and occasionally a .NET CMS like Umbraco uses / used this database type. According to Microsoft’s Fixed Lifecycle Policy, the extended support date was Jul 13, 2021. Time to get rid of your Microsoft SQL Server Compact 4.0 databases.
Convert Umbraco’s SqlCe database to SQL Server – by example
Umbraco is a widely used .NET content management system. I’ve written about Umbraco on multiple occassions, for example about optimizing Umbraco 8’s performance or configuring SQL Server sessionState for Umbraco. In this post I’ll show you how to convert Umbraco’s default SqlCe database to SQL Server. After converting the database, you need to change the Umbraco connection string in your web.config
file.
Requirements
To convert an SqlCe database to SQL Server, you’ll need the following:
- SQL Server Management Studio (SSMS), download it from here.
- Microsoft SQL Server Compact 4.0 PS1 driver from here.
- You’ll need a special convert tool called ExportSqlCE40.exe, created by Microsoft MVP Erik Ejlskov Jensen. Download it from GitHub. Unzip the file to an easy to remember location on your hard drive.
- A copy of your SqlCe database (
~/App_data/Umbraco.sdf
), download via FTP if necessary. - Umbraco web.config file
- SQL Server database login information (host, username, password, database name)
ExportSqlCE40.exe
ExportSqlCe40.exe is the tool to convert a SqlCe .sdf
file to an .sql
file that you can import into your SQL Server database.
Execute the file without parameters (arguments) to see its help information:
C:\Users\janreilink\source>ExportSqlCe40.exe
Usage : (To script an entire database)
ExportSqlCe40.exe [SQL CE Connection String] [output file location] [[exclude]] [[schemaonly|dataonly|dataonlyserver]] [[saveimages]] [[sqlazure]]
(exclude, schemaonly|dataonly, saveimages and sqlazure are optional parameters)
Examples :
ExportSqlCe40.exe "Data Source=D:\Northwind.sdf;" Northwind.sql
ExportSqlCe40.exe "Data Source=D:\Northwind.sdf;" Northwind.sql exclude:Shippers,Suppliers
Usage: (To create a schema diff script)
ExportSqlCe40.exe diff [SQL Compact or SQL Server Connection String (source)]
[SQL Compact or SQL Server Connection String (target)] [output file location]
Example :
ExportSqlCe40.exe diff "Data Source=D:\Northwind.sdf;" "Data Source=.\SQLEXPRESS,Inital Catalog=Northwind" NorthwindDiff.sql
Usage: (To create a database graph)
ExportSqlCe40.exe dgml [SQL Compact or SQL Server Connection String (source)] [output file location]
Example :
ExportSqlCe40.exe dgml "Data Source=D:\Northwind.sdf;" C:\temp\northwind.dgml
Usage : (To script an entire database to SQLite format)
ExportSqlCe40.exe [SQL CE Connection String] [output file location] [sqlite]
Examples :
ExportSqlCe40.exe "Data Source=D:\Northwind.sdf;" Northwind.sql sqlite
Code language: PowerShell (powershell)
From this, you learn all you need is the following command:
ExportSqlCe40.exe "Data Source=umbraco\App_Data\Umbraco.sdf" umbraco.sql
Code language: PowerShell (powershell)
The umbraco\
part is specific for my environment. You may also use a file name of your choosing for umbraco.sql
, it’s only for importing into SQL Server later on.
If all goes well, you’ll get the following output:

In text:
Initializing....
Generating the tables....
Generating the data....
Generating the primary keys....
Generating the indexes....
Generating the foreign keys....
Sent script to output file(s) : umbraco.sql in 618 ms
Code language: PowerShell (powershell)
And you’ll notice umbraco.sql is saved in the same directory:

The umbraco.sql file is the file you import into SQL Server using SQL Server Management Studio
Import .sql export file into SQL Server using SQL Server Management Studio (SSMS)
In order to import your exported .sql file into SQL Server using SQL Server Management Studio (or SSMS), you need to make a connection to your database. Make sure you have your credentials available.
- Start SQL Server Management Studio

- Fill out requested authentication information. Please don’t bother trying to bruteforce this database; it’s already removed.

- Do you use contained databases? Fill out your database name

- Click Connect

If all went well, you are connected to your SQL Server database. Open your .sql file (File > Open > File … , or hotkey CTRL+O)




Use the Parse function to validated the loaded .sql file and to see it doesn’t contain errors.

Now you can execute the statements if Parse didn’t show any errors

The output shows the result of the statements
If all statements were executed successfully, then your database is imported:

Update Umbraco connectionString for SQLServer
To let Umbraco make use of your new SQL Server database, you need to change its connection string. You can do so in the web.config
file. For SqlCe it looks like:
<connectionStrings>
<remove name="umbracoDbDSN" />
<add name="umbracoDbDSN" connectionString="Data Source=|DataDirectory|\Umbraco.sdf;Flush Interval=1;" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Code language: HTML, XML (xml)
Change this connection string to an ASP.NET connection string for SQL Server:
<add name="umbracoDbDSN"
connectionString="Data Source=database server hostname;Initial Catalog=databasename;User Id=username;Password=P4ssw0rd"
providerName="System.Data.SqlClient" />
Code language: HTML, XML (xml)
Substitute the values ‘database server hostname’, ‘databasename’, ‘username’ and ‘P4ssw0rd’ with your SQL Server database information.
Secure your database connection using SSL/TLS encryption.
Upload your new web.config
file to your website and rename the ~/App_Data/Umbraco.sdf
file. If your website is still functioning properly, congratulations, you have just converted your old SqlCe database to SQL Server! If the convert didn’t go as planned, rename back your Umbraco.sdf
file, put in the original connection string in your web.config
file and upload it to your site.
Please let me know what you thought of this article and whether the database convert worked for you (or didn’t).
Are you looking for rock solid, eco-friendly, Umbraco hosting? Look no further! UmbHost is an Umbraco Registered Partner offering hosting services for websites and businesses of all sizes.
“Hoe installeer ik Umbracoop mijn website?”. Je wilt graag aan de slag met Umbraco, en vroeger had Umbraco net zo’n fijne webbased installatie als WordPress, maar nu niet meer helaas. Dus hoe installeer je Umbraco? Je gebruikt de ‘
dotnet
‘ tool om Umbraco te installeren, en Web Deploy om je site te publiceren. Hoe je dat doet lees je in deze post.Inhoudsopgave
toon
1
Umbraco installeren met PowerShell
1.1
Unattended (silent) Umbraco installeren met vooraf geselecteerde packages
1.2
Kanttekening bij SQLite-database
2
Umbraco website publiceren met Web Deploy
3
Conclusie Umbraco installeren en publiceren
Tegenwoordig installeer je Umbraco eerst lokaal op je PC, met de dotnet tool. Deze tool verzorgt het downloaden en installeren ervan. Het beschikbaar hebben van .NET is dus een vereiste. Als je dit nog moet installeren, kies dan voor .NET 7.0. Microsoft heeft meer help en informatie beschikbaar. Dus geen .zip-bestand meer downloaden, uitpakken met 7-Zip en via FTP uploaden. Héérlijk! Op deze manier kun je heel snel een nieuwe website in de lucht brengen.
Goed, nu je .NET 7.0 geïnstalleerd hebt, is het tijd om wat met Umbraco te gaan doen, toch?
Umbraco installeren met PowerShell
Echt, of je nu PowerShell als opdrachtregel (of command line interface – cli) gebruikt of cmd.exe, dat maakt niet uit. Ik vind alleen de PowerShell-console fijner. Alle opties geef je in één keer mee op de opdrachtregel. Bedenk dus goed van te voren wat je wilt, in dit voorbeeld houd ik het simpel (KISS – Keep It Simple Stupid). Uitgebreide documentatie vind je op de Umbraco-website.
Zoek jij top notch en eco-vriendelijke, Umbraco hosting? Zoek niet verder, UmbHost is een Umbraco Registered Partner die betaalbare hostingdiensten aanbiedt voor websites en bedrijven van iedere omvang.
Volg het volgende stappenplan om Umbraco te installeren:
op de opdrachtprompt, navigeer naar de map waar je je Umbraco site onder wilt plaatsen
installeer de Umbraco templates met
dotnet new install Umbraco.Templates
voer
dotnet new umbraco --name ProjectNaam
uit om een nieuw project te makenga de projectfolder in, het is de map waarin het
.csproj
-bestand zich bevindt (cd ProjectNaam
)bouw en start je site (eenvoudig) met
dotnet run
er komt nu veel tekst voorbij op je scherm, je herkent hierin iets vergelijkbaars met
[10:46:01 INF] Now listening on: http://localhost:5000
. Open deze URL in je browser (CTRL en klik is voldoende).vul de gevraagde informatie in het browserventser in, zie het voorbeeld hieronder. Klik daarna de Install knop.
Umbraco installatiescherm in de browser
Gebruikersnamen, wachtwoorden en website-adressen (URL’s) die in deze blogpost genoemd staan hoef je niet te proberen te misbruiken. Omdat het een testomgeving betreft staan gebruikersnamen en wachtwoorden in platte tekst in deze post, die omgeving is niet meer beschikbaar.
Zodra de installatie is afgerond – en dit gaat vrij snel – opent het Umbraco backend scherm met een welkomstboodschap:
Umbraco welkomstscherm na installatie
Na de niet verplichte tour kun je beginnen met het inrichten van je site, maken van pagina’s of posts, installeren van packages, enz. Enjoy!
Maar er is meer, en het kan nóg simpeler: unattended (silent) installatie inclusief packages via de opdrachtprompt!
Forceer HTTPS voor UmbracoBeveilig Umbraco’s SQL Server verbinding met SSL
Unattended (silent) Umbraco installeren met vooraf geselecteerde packages
Ik kan me voorstellen dat je graag het een en ander al geïnstalleerd wilt hebben op het moment dat je het Umbraco-backend opent, en dat je niet het Install Umbraco venster hoeft in te vullen. Wist je dat je deze gegevens vooraf al kunt opgeven op de opdrachtprompt als commando / opdracht? Umbraco kent vele unattended installatie-argumenten.
Een kort voorbeeld is (alles moet op één regel):
.wp-block-code {
border: 0;
padding: 0;
}
.wp-block-code > div {
overflow: auto;
}
.shcb-language {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
-webkit-clip-path: inset(50%);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
word-wrap: normal;
word-break: normal;
}
.hljs {
box-sizing: border-box;
}
.hljs.shcb-code-table {
display: table;
width: 100%;
}
.hljs.shcb-code-table > .shcb-loc {
color: inherit;
display: table-row;
width: 100%;
}
.hljs.shcb-code-table .shcb-loc > span {
display: table-cell;
}
.wp-block-code code.hljs:not(.shcb-wrap-lines) {
white-space: pre;
}
.wp-block-code code.hljs.shcb-wrap-lines {
white-space: pre-wrap;
}
.hljs.shcb-line-numbers {
border-spacing: 0;
counter-reset: line;
}
.hljs.shcb-line-numbers > .shcb-loc {
counter-increment: line;
}
.hljs.shcb-line-numbers .shcb-loc > span {
padding-left: 0.75em;
}
.hljs.shcb-line-numbers .shcb-loc::before {
border-right: 1px solid #ddd;
content: counter(line);
display: table-cell;
padding: 0 0.75em;
text-align: right;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
white-space: nowrap;
width: 1%;
}
dotnet new umbraco
Code language: JavaScript (javascript)--name ITFAQ.nl
--force
--friendly-name "Jouw naam"
--email "voorbeeld@example.com"
--password 'fk(rw*wqmQSi5PK6Sg5N3LXHEiEYJT@4'
--development-database-type SQLite
Dit geeft heel veel schermuitvoer, onder andere omdat je op de prompt ziet dat de database wordt aangemaakt. Dit kun je negeren, en op het eind zie je weer staan:
[14:35:43 INF] Now listening on: http://localhost:5000
. Klik je die aan, dan krijg je scherm “Welcome to your Umbraco installation”. Klik op “Open Umbraco” om op het inlogvenster te komen.Welcome to your Umbraco installation
Je kunt hier inloggen met de gebruikersnaam en het wachtwoord dat je mee hebt gegeven op de opdrachtprompt:
Umbraco inlogpagina
En je komt dan weer bij het “Welcome to Umbraco – The Friendly CMS” welkomstboodschap met tour.
Umbraco welkomstscherm na installatie
Je vindt op pws.codeshare.co.uk meer voorbeelden van deze installatie-optie, en kun je bijvoorbeeld direct een Starter Kit installeren. Een Starter Kit is een kant-en-klaar thema of template. Met de opdracht
dotnet add "MyProject" package clean
installeer je Clean Starter Kit. Het script dat de site genereert bevat al deze opties en hoef je alleen maar te kopiëren en plakken op je opdrachtprompt en uit te voeren.Uiteindelijk heb ik het volgende gebruikt voor een test site:
dotnet new sln --name "ITFAQ.nl"
Code language: PowerShell (powershell)dotnet new umbraco --force -n "ITFAQ.nl" --friendly-name "Jouw naam" --email "voorbeeld@example.com" --password "fk(rw*wqmQSi5PK6Sg5N3LXHEiEYJT@4" --development-database-type SQLite
dotnet sln add "ITFAQ.nl"
dotnet add "ITFAQ.nl" package clean
dotnet run --project "ITFAQ.nl"
Hierbij zijn de twee regels met
sln
belangrijk als je later met Visual Studio werkt. Open je uiteindelijk de URL, dan ziet je site er zo uit:Umbraco met Clean starter kit
Kanttekening bij SQLite-database
In het verleden met ASP.NET Framework 4.8 was SqlCe – or SQL Server Compact – de standaard database voor Umbraco, maar dat databasetype is nu officieel verouderd (deprecated). SqlCe databases moet converteren naar SQL Server. In de huidige .NET is SQLite het standaard databasetype, en dat is een databasetype dat al jaren bestaat, en is goed en stabiel. Hierom is het niet nodig om te kiezen voor SQL Server, alhoewel ik dat wel zou aanraden voor grotere sites en databases.
Bulma Starter Kit installeren in Umbraco 8
Umbraco website publiceren met Web Deploy
Web Deploy flow
Nu je je Umbraco website lokaal hebt gemaakt en er helemaal tevreden over bent, is het tijd om je website te uploaden naar je webhost. Dit uploaden heet vaak publiceren of deployen. Dé tool om je website naar een Windows Server host (ideaal voor Umbraco) over te brengen heet “Web Deploy”. Deze tool is standaard in Visual Studio aanwezig, maar je kunt het ook afzonderlijk downloaden en installeren.
Web Deploy v3.6 downloaden
Een Web Deploy introductie vind je hier: Introduction to Web Deploy. Het is een manier om een website veilig te uploaden via HTTPS in plaats van het oude FTP.
Als je gebruik maakt van Visual Studio, dan kun je een grafische omgeving gebruiken om je website te publiceren met Web Deploy. Heb je de nieuwste versie van Visual Studio, dan heb je ook een iets nieuwere versie van Web Deploy, dat geeft verder niet. In mijn testomgeving staat de site in de map
C:UsersjanreilinksourcedevsitesITFAQ.nl
, het is belangrijk dat je weet waar jij jouw site hebt neergezet.Heb je met het
dotnet
-commando hierboven eensln
-bestand gemaakt, dan kun je dat bestand openen met Visual Studio. In de Windows Verkenner ga je naar de map met hetsln
-bestand, klikt met de rechter muisknop op dat bestand en kiest voor Openen Met, en dan Visual Studio 2022.In dit voorbeeld gebruik ik Visual Studio om de website te publiceren. Later geef ik in een ander artikel een voorbeeld hoe je
webdeploy.exe
gebruikt op de opdrachtprompt, hoe je een publish profiel maakt en hoe jedotnet publish
gebruikt. Meerdere opties hebben is altijd handig.Je hebt een aantal gegevens nodig, vraag je webhost bij twijfel:
Of Web Deploy als service aangeboden wordt voor jouw site
Gebruikersnaam en wachtwoord
Web Deploy service URL incl poortnummer (Server in de afbeelding hieronder)
IIS Applicatie (Site name in de afbeelding hieronder)
URL of website-adres van je website (Destination URL)
Wil je zelf via de commandline (opdrachtprompt) publiceren? Je vindt Web Deploy geïnstalleerd in
"C:Program FilesIISMicrosoft Web Deploy V3msdeploy.exe"
. Gebruik/?
om de helpinformatie op te vragen.Als je de website geopend hebt in Visual Studio, dan kun je de volgende stappen en afbeeldingen volgen om je site te publiceren. Let op dat ik wat gegevens heb moeten blurren.
in Solution Explorer (rechter zijbalk) klik je met de rechter muisknop op de vet weergegeven naam van je oplossing (“ITFAQ.nl” in mijn geval).
een nieuw context-menu opent, kies hier voor Publish..
maak een nieuw publish profile aan
kies voor Web Server (IIS)
kies Web Deploy
vul de gevraagde gegevens in, zie hierboven voor meer informatie en vraag je webhost bij twijfel.
valideer de verbinding met de knop Validate Connection
klik Finish en je ziet een bevestiging dat een profiel is aangemaakt, klik Close
klik de Publish knop rechtsboven als je je website nu wilt publiceren
Na het publiceren opent je site zich automatisch in de browser, en ziet er bijvoorbeeld zo uit:
Zoek jij top notch en eco-vriendelijke, Umbraco hosting? Zoek niet verder, UmbHost is een Umbraco Registered Partner die betaalbare hostingdiensten aanbiedt voor websites en bedrijven van iedere omvang.
Conclusie Umbraco installeren en publiceren
In de loop der jaren is er veel veranderd in hoe je start met websites. Waar je vroeger afhankelijk was van een webhostingprovider, moeilijke FTP-gegevens en -programma’s, kun je nu eenvoudig een site lokaal maken en inrichten. Dit geldt ook voor Umbraco met .NET. En zodra je tevreden bent met het eindresultaat publiceer je de site eenvoudig naar je webruimte met Web Deploy. Vanuit Visual Studio kun je zelfs samenwerken met andere personen of teams van ontwikkelaars.Deel deze post:
Share on Twitter
Share on Facebook
Share on Pinterest
[…] for your site, and not the default SqlCe SDF database file. That doesn’t scale. Here is a convert SqlCe to SQL Server post for you to […]