Kom i gang
Last ned og installer QPad, og start den fra Start-menyen. Første gang står et lite eksempel klart i editoren. Trykk F5 (eller ▶ Run), så vises resultatet som en tabell under koden.
Enumerable.Range(1, 5)
.Select(x => new { x, Square = x * x })
.Dump("Squares");
Vinduet har tre deler: til venstre tilkoblinger og spørringer, i midten editoren med faner, og nederst resultatene. Skillelinjene kan dras for å endre størrelse, og ☰ i verktøylinjen skjuler eller viser venstre panel. QPad husker fanene, vindusstørrelsen og oppsettet til neste gang.
Kjøremoduser
Velg modus i listen Language i verktøylinjen. Nye faner starter i C# Statements.
- C# Expression
- Ett uttrykk, som
DateTime.Now.AddDays(30). Verdien vises automatisk – du trenger ikke.Dump(). Et semikolon på slutten går fint. - C# Statements
- Vanlig kode linje for linje, som i en
Program.csmed toppnivåsetninger.usingøverst,awaitog egne klasser nederst er lov. - C# Program
- En
void Main()(ellerasync Task Main()) med egne metoder, felt og klasser rundt. En komplett fil med egenstatic Maingår også.
Bytter du til C# Program, pakkes koden automatisk inn i void Main() { … } (eller async Task Main() hvis den bruker await).
Angre med Ctrl+Z hvis du ombestemmer deg. Står koden i feil modus, forteller feilmeldingen hvilken modus du skal velge.
void Main()
{
var total = Sum(1, 2, 3);
total.Dump("Sum");
}
int Sum(params int[] numbers) => numbers.Sum();
Disse navnerommene er alltid tilgjengelige uten using: System, System.Collections.Generic,
System.IO, System.Linq, System.Text, System.Threading og System.Threading.Tasks.
Resultater og .Dump()
Skriv .Dump() etter en verdi for å vise den. Lister og objekter blir tabeller, ordbøker blir Key/Value,
og nøstede objekter vises inne i cellene. Gi tabellen en overskrift med .Dump("Tittel"). Dump returnerer verdien,
så den kan stå midt i en kjede.
var people = new[]
{
new { Name = "Kari", Age = 29 },
new { Name = "Ola", Age = 41 },
};
people.Dump("Alle");
people.Where(p => p.Age > 30).Dump("Over 30");
Console.WriteLine($"Antall: {people.Length}");
Console.WriteLineskrives rett i resultatene. Tekst tilConsole.Errorvises som en feil.- En liste viser opptil 1000 elementer. En databasespørring uten
.Take(n)henter de første 1000 radene og sier fra hvis det finnes flere. - Bytt mellom Results og SQL over resultatfeltet. SQL viser hver SQL-setning som ble kjørt mot databasen, med parameterverdier.
- Kompileringsfeil listes med linje og kolonne. Klikk på en feil, så hopper markøren dit i koden.
- Unntak vises med type og melding, og stack trace kan foldes ut. Feiltekst kan merkes og kopieres.
- ■ Stop (Shift+F5) avbryter kjøringen. Skript kjører i en egen prosess, så selv en uendelig løkke stoppes uten at QPad henger.
- Output over 20 MB i én kjøring kuttes med en melding. Statuslinjen nederst viser tiden kjøringen tok.
Editoren
- Kodefullføring kommer når du skriver . eller begynner på et ord, og med Ctrl+Space. Enter, Tab eller et skilletegn som ( setter inn forslaget. Mellomrom lukker listen.
- Parameterhjelp vises når du skriver ( eller , i et metodekall, og med Ctrl+Shift+Space. Den viser overloaden som passer argumentene du skriver.
- Hold musen over et navn for å se typen og dokumentasjonen, eller over en understreket feil for å lese meldingen.
- Feil mens du skriver: rød bølgestrek er feil, grønn er advarsel. Koden sjekkes et halvt sekund etter at du slutter å skrive.
- Formater koden med Ctrl+K etterfulgt av Ctrl+D, som i Visual Studio, eller Edit → Format document. Bare innrykk, mellomrom og linjeskift endres, og én Ctrl+Z angrer alt.
Kodefullføringen kjenner også NuGet-pakkene du har lagt til og tabellene i databasen fanen er koblet til.
Kodefullføring, parameterhjelp og hover krever en aktivert lisens. Feilmarkering og formatering virker uten.
Faner
- Ny fane: Ctrl+T, File → New query eller fanen +.
- Lukk: Ctrl+W, × på fanen eller midtklikk. Har fanen ulagrede endringer, blir du spurt om du vil lagre.
- Bytt fane med Ctrl+Tab og Ctrl+Shift+Tab.
- Dobbeltklikk på fanetittelen for å gi fanen et eget navn. Enter lagrer, Esc avbryter.
- En stjerne (
*) etter navnet betyr ulagrede endringer.
Når du lukker QPad, tas alle fanene vare på – også ulagrede – og de er tilbake neste gang du starter. Du blir derfor ikke spurt om å lagre når du avslutter. Vil du ha en spørring som fil, lagrer du den med Ctrl+S.
qPad-filer
En spørring lagres som en .qpad-fil. Den inneholder koden, kjøremodusen, NuGet-pakkene (med eksakt versjon),
DLL-ene du refererer til og hvilken tilkobling spørringen bruker. Tilkoblingen lagres bare som en referanse – aldri
servernavn eller passord – så filen kan trygt deles eller sjekkes inn i et repo.
- File → Save (Ctrl+S) lagrer. Første gang foreslås mappen My qPads og fanens navn.
- File → Save As… (Ctrl+Shift+S) lagrer en kopi med nytt navn eller på et nytt sted.
- File → Open… (Ctrl+O) åpner én eller flere filer. Er filen allerede åpen, går QPad til den fanen.
Et eget fanenavn (satt med dobbeltklikk) lagres ikke i filen. Filen får navnet du velger når du lagrer.
Examples og My qPads
Under tilkoblingene til venstre ligger panelet Queries med to mapper:
- Examples
- Ferdige eksempler å lære av: Hello QPad, Dump basics, LINQ to objects, Async code, C# Program, Using a NuGet package og Querying a database. De åpnes som nye, ulagrede spørringer, så du kan endre fritt og lagre en egen kopi.
- My qPads
- Dine egne
.qpad-filer, med undermapper. Standard erDokumenter\QPad. Velg en annen mappe under File → Settings….
Slik organiserer du filene, omtrent som i Windows Utforsker:
- Åpne: dobbeltklikk eller Enter.
- Ny mappe: høyreklikk på My qPads eller en mappe og velg New folder…. Mappen får navnet «New folder», og du kan skrive et nytt navn med en gang.
- Gi nytt navn: merk filen eller mappen og trykk F2, eller høyreklikk og velg Rename. Navnet endres rett i treet. Enter lagrer, Esc avbryter.
- Flytte: dra en fil til en annen mappe. Slipper du den på en fil, havner den i den filens mappe.
- Slette: merk filen og trykk Delete, eller høyreklikk og velg Delete…. Filen flyttes til papirkurven, så du kan angre der. Mapper slettes i Utforsker.
- Utforsker: Show in Explorer på en fil og Open in Explorer på en mappe.
Åpne faner følger med når en fil flyttes eller får nytt navn. Endringer du gjør i mappen utenfor QPad, vises i treet av seg selv.
Databaser
QPad kobler til SQL Server (også LocalDB) og PostgreSQL.
Legge til en tilkobling
- Klikk Add connection øverst i venstre panel.
- Velg Server type og skriv inn Server, for eksempel
localhost,.\SQLEXPRESSeller(localdb)\MSSQLLocalDB. For PostgreSQL kan port legges til:db.example.com:5432. - Velg Windows authentication eller User name and password.
- Velg databasen i listen Database (den hentes fra serveren), eller skriv navnet.
- Trykk Test connection for å sjekke, og OK for å lagre.
Passordet lagres kryptert for Windows-kontoen din og blir aldri skrevet i klartekst til disk eller logg. Høyreklikk på en tilkobling for Use in active tab, Refresh, Edit… og Delete.
Koble en spørring til databasen
Hver fane har sin egen tilkobling, vist under editoren. Velg Use in active tab på tilkoblingen, eller dra en tabell inn i editoren. Disconnect fjerner tilkoblingen fra fanen. En ny tilkobling brukes automatisk i fanen du står i, hvis den ikke har en fra før.
Skjematreet
Under tilkoblingen ligger Tables og Views med kolonner (med type, primær- og fremmednøkler) og relasjoner.
Dra en tabell inn i editoren for å sette inn Kunder.Take(100) – på en tom linje blir det Kunder.Take(100).Dump();.
Dra en kolonne for å sette inn navnet på egenskapen.
Tabeller i koden
Når fanen har en tilkobling, er tabellene tilgjengelige direkte i koden som LINQ-kilder (linq2db). Klassene får entallsnavn og
tabellene flertall, for eksempel klassen Customer og tabellen Customers. Tabeller utenfor
dbo/public får skjemaet foran: Sales_Order. Fremmednøkler blir navigasjonsegenskaper,
så order.Customer.Name virker.
Customers
.Where(c => c.City == "Oslo")
.OrderBy(c => c.Name)
.Select(c => new { c.Name, Orders = c.Orders.Count() })
.Take(20)
.Dump();
- Se nøyaktig hvilken SQL som ble kjørt i SQL-visningen.
- Nye rader legges inn med
this.Insert(new Customer { … }). Det finnes ingenSaveChanges. - Har databasen endret seg, velger du Refresh på tilkoblingen. Skjemaet lagres lokalt, så tabellene er kjent også når serveren ikke svarer.
- ■ Stop avbryter også en databasespørring som tar lang tid.
NuGet-pakker og DLL-er
Klikk References… i verktøylinjen. Pakkene gjelder spørringen i den aktive fanen og lagres i .qpad-filen.
- Skriv i søkefeltet, for eksempel
newtons. Alle aktiverte kilder søkes samtidig, og hvert treff viser hvilken kilde det kommer fra. - Kryss av Include prerelease for forhåndsversjoner. Velg en annen versjon i listen ved treffet hvis du ikke vil ha den nyeste stabile.
- Add laster ned pakken med avhengigheter med en gang. Har spørringen en annen versjon, står det Update. Fjern en pakke under Installed packages.
- Egne DLL-er legges til under Assemblies med Add DLL….
- Pakkene lastes ned én gang og lagres lokalt. Første kjøring etter at en pakke er lagt til, viser «Restoring packages…».
Private pakkekilder
Under Sources… legger du til egne kilder, for eksempel en Azure DevOps-feed. Oppgi navn og URL til
index.json (v3), og eventuelt brukernavn og passord eller personal access token (PAT). Passord og PAT lagres
kryptert for Windows-kontoen din. nuget.org er innebygd og kan slås av, men ikke fjernes. Ved første oppstart hentes
kildene fra din nuget.config.
Innstillinger og lagring
File → Settings… har to valg:
- Theme: System (follow Windows), Light eller Dark. Med System følger QPad Windows-innstillingen mens appen kjører.
- qPad folder: mappen som vises som My qPads og foreslås når du lagrer. Use default går tilbake til
Dokumenter\QPad.
Her lagrer QPad filene sine:
| Mappe | Innhold |
|---|---|
Dokumenter\QPad | Dine .qpad-filer (My qPads), med mindre du har valgt en annen mappe. |
%APPDATA%\QPad | usersettings.json: tema, tilkoblinger (passord kryptert), pakkekilder, åpne faner og vindusoppsett. |
%LOCALAPPDATA%\QPad | Hurtigbuffer for databaseskjema, nedlastede pakker, logger, feilrapporter og data for resultatvisningen. Kan slettes; alt bygges opp igjen. |
Feilrapporter
Når noe går galt – et unntak i skriptet, en feil i QPad eller et skjema som ikke kan leses – lagres en rapport i
%LOCALAPPDATA%\QPad\errors. Under feilmeldingen står «Saved for troubleshooting» med en lenke som viser filen i Utforsker.
Rapporten inneholder feilmeldingen, koden slik den var da du kjørte, kjøremodus, pakker og hvilken database det gjaldt. Den inneholder aldri passord eller connection strings. Legg ved filen hvis du melder fra om en feil. De 200 nyeste beholdes.
Hurtigtaster
| Taster | Hva skjer |
|---|---|
| F5 | Kjør spørringen |
| Shift+F5 | Stopp kjøringen |
| Ctrl+Space | Vis kodefullføring |
| Ctrl+Shift+Space | Vis parameterhjelp |
| Ctrl+K,Ctrl+D | Formater koden |
| Ctrl+Z | Angre (også formatering og bytte til C# Program) |
| Ctrl+T | Ny fane |
| Ctrl+W | Lukk fanen |
| Ctrl+Tab | Neste fane (med Shift: forrige) |
| Ctrl+O | Åpne fil |
| Ctrl+S | Lagre |
| Ctrl+Shift+S | Lagre som |
| F2 | Gi nytt navn til fil eller mappe i My qPads |
| Delete | Flytt merket qPad-fil til papirkurven |
| Enter | Åpne merket fil eller eksempel |
Lisens og aktivering
QPad er gratis. Alt virker uten lisens, unntatt IntelliSense: kodefullføring, parameterhjelp og hover over navn.
Registrer e-postadressen din, så får du en lisensnøkkel på e-post, for eksempel AB12-CD34.
- Klikk Activate license øverst til høyre i QPad.
- Skriv inn e-postadressen og nøkkelen fra e-posten, og trykk Activate.
- QPad kontakter qpad.no én gang for å aktivere. Etterpå er lisensen lagret og virker uten nett.
Øverst til høyre står det nå hvem lisensen er registrert på. Klikk der for å se detaljene eller aktivere på nytt, for eksempel med en annen e-postadresse. Lisensen gjelder Windows-brukeren og maskinen den er aktivert på; på en ny maskin aktiverer du med samme nøkkel.
Ved aktivering lagres e-postadressen, QPad-versjonen, Windows-versjonen og en anonym maskin-ID (ikke maskinnavnet).
Tips og feilsøking
- Installasjonen stopper og ber om .NET 10 Desktop Runtime
- Last ned «.NET Desktop Runtime» (x64) fra dotnet.microsoft.com, installer den og kjør QPad-installasjonen på nytt.
- Kodefullføringen viser ikke dokumentasjon for .NET-metoder
- Dokumentasjonen følger med .NET 10 SDK. Installer SDK-en, så vises den. Alt annet virker uten.
- «The connection this query uses no longer exists»
- Tilkoblingen spørringen var lagret med, finnes ikke på denne maskinen. Velg Use in active tab på en av dine egne tilkoblinger.
- Tabellene dukker ikke opp i kodefullføringen
- Sjekk at fanen er koblet til databasen (linjen under editoren). Er tabellen ny, velger du Refresh på tilkoblingen.
- En spørring henger
- Trykk Shift+F5. Stopper den ikke av seg selv innen to sekunder, avsluttes prosessen.
- Utvidelsesmetoder virker ikke i C# Program
- I C# Program legges klassene inne i spørringen, og da kan de ikke inneholde utvidelsesmetoder. Bruk C# Statements, eller skriv en komplett fil med egen
static Main.