Finne vin
Den første utfordringen er å sette opp en kopling mot MySql-basen. Dette får vi til ved å velge ny datakopling og endre provider til ODBC/MySql.
Den andre utfordringen er å lage en metode som implementerer en parameterstyrt, sql-basert metode. Dette viser seg å være litt problematisk (?). I stedet bruker jeg en filterstring i BindingSource, se koden nedenfor.
Form1.cs
Denne klassen inneholder all håndkodet kode og ser slik:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace winebase3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.dataTableTableAdapter1.Fill(this.vinDataSet.DataTable);
}
private void button1_Click(object sender, EventArgs e)
{
try
{
this.bindingSource1.Filter = textBox1.Text;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
Connection stringen lagres i applikasjonens configureringsfil, app.config.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="winebase3.Properties.Settings.vinConnectionString"
connectionString="Driver={MySQL ODBC 3.51 Driver};database=vin;option=0;pwd=student;port=0;server=frigg.hiof.no;uid=student"
providerName="System.Data.Odbc" />
</connectionStrings>
</configuration>
Det er også mulig lage og lagre følgende dsn-fil (myfriggvin.dsn), og hente den direkte og derved korslutte den litt grumsete dialog som må til for å sette opp datakoplingen:
[ODBC] DRIVER=MySQL ODBC 3.51 Driver UID=student SERVER=frigg.hiof.no PORT=0 OPTION=3 DATABASE=vin
Vi ser at dette i prinsipp er det samme som en connectionstring vi ville ha skrevet i koden, dersom vi ikke var ute etter en (halv)automatisk kopling.


