Finne vin
Løsningen er basert på at vi lager en databasekopling mot en database på donau.hiof.no der vi velger ut tabellen wines. Vi kopler denne opp til en bindingnavigator, og sitter til slutt med følgende objekter: "bindingNavigator1", "bindingSource1", "borresDataSet", "wineTabeadapter". Vi går inn i den siste og lager en query: SelectSome med følgende SQL-setning:
SELECT vin_id, name, catalog, type, country, dice, volume, price, description FROM db_owner.wines WHERE (country=@land) and (type=@type) order by dice desc
Denne gir opphav til en metode som vi kan bruke når vi henter ønskede data:
this.winesTableAdapter1.SelectSome(this.borresDataSet.wines, land, type);
Form1.cs
Koden er slik:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace inspectwine { public partial class Form1 : Form { // initalizing correctly bool SelectedLand = false; bool SelectedType = false; public Form1() { InitializeComponent(); } private void comboBoxLand_SelectedIndexChanged(object sender, EventArgs e) { SelectedLand = true; if (SelectedType) Load(); } private void comboBoxType_SelectedIndexChanged(object sender, EventArgs e) { SelectedType = true; if (SelectedLand) Load(); } private void Load() { String land = comboBoxLand.SelectedItem.ToString(); String type = comboBoxType.SelectedItem.ToString(); textBoxUtvalg.Text = type + " fra " + land; if (type.IndexOf("Rød") != -1) type = "red"; else if (type.IndexOf("Hvit") != -1) type = "white"; else if (type.IndexOf("Muss") != -1) type = "sparkling"; else type = "rose"; try { this.newwinesTableAdapter.FillBy(this.borresDataSet.newwines,land,type); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } } private void bindingSource1_CurrentChanged(object sender, EventArgs e) { try { System.Data.DataRowView cur = (System.Data.DataRowView)bindingSource1.Current; Object[] ol = cur.Row.ItemArray; textBoxNavn.Text = ol[1].ToString(); labelterning.Text = ol[5].ToString(); textBoxVolum.Text = ol[6].ToString(); textBoxPris.Text = ol[7].ToString(); textBoxBeskrivelse.Text = ol[8].ToString(); } catch (Exception ex) { textBoxNavn.Text = "Ingen"; labelterning.Text = ""; textBoxVolum.Text = ""; textBoxPris.Text = ""; textBoxBeskrivelse.Text = ""; } } } }
app.config
I app.config finner vi beskrivelse av hvordan vi kopler oss mot databasen. Vi gjør det via en bruker student med passord student. Basen heter bs. Student har bare leserettigheter.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> </configSections> <connectionStrings> <add name="inspectwine.Properties.Settings.borresConnectionString" connectionString="Data Source=donau.hiof.no;Initial Catalog=bs;User ID=student;Password=student" providerName="System.Data.SqlClient" /> </connectionStrings> </configuration>