Start med DatabaseConnection program

This commit is contained in:
Alex Thomassen 2019-01-10 13:38:15 +01:00
parent ad57699ad6
commit 9c9fc3912f
Signed by: Alex
GPG Key ID: 10BD786B5F6FF5DE
15 changed files with 993 additions and 0 deletions

View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.28307.136
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DatabaseConnection", "DatabaseConnection\DatabaseConnection.csproj", "{64F309CD-0AA7-4931-A725-48E2704009A0}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{64F309CD-0AA7-4931-A725-48E2704009A0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64F309CD-0AA7-4931-A725-48E2704009A0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{64F309CD-0AA7-4931-A725-48E2704009A0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64F309CD-0AA7-4931-A725-48E2704009A0}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {0877ACA0-7DCF-4B0C-BE72-96EDF7A9B063}
EndGlobalSection
EndGlobal

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
</configuration>

View File

@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{64F309CD-0AA7-4931-A725-48E2704009A0}</ProjectGuid>
<OutputType>WinExe</OutputType>
<RootNamespace>DatabaseConnection</RootNamespace>
<AssemblyName>DatabaseConnection</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>Icon.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="MySql.Data, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="MySql.Data.EntityFramework, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2\MySql.Data.EntityFramework.dll</HintPath>
</Reference>
<Reference Include="MySql.Web, Version=8.0.13.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\Program Files (x86)\MySQL\Connector NET 8.0\Assemblies\v4.5.2\MySql.Web.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="DatabaseConnectionForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="DatabaseConnectionForm.Designer.cs">
<DependentUpon>DatabaseConnectionForm.cs</DependentUpon>
</Compile>
<Compile Include="MySqlConnectionHandler.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<EmbeddedResource Include="DatabaseConnectionForm.resx">
<DependentUpon>DatabaseConnectionForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<Content Include="Icon.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>

View File

@ -0,0 +1,82 @@
namespace DatabaseConnection
{
partial class DatabaseConnectionForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DatabaseConnectionForm));
this.tableData = new System.Windows.Forms.DataGridView();
this.updateBtn = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.tableData)).BeginInit();
this.SuspendLayout();
//
// tableData
//
this.tableData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.tableData.Location = new System.Drawing.Point(16, 15);
this.tableData.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.tableData.Name = "tableData";
this.tableData.Size = new System.Drawing.Size(1124, 473);
this.tableData.TabIndex = 0;
//
// updateBtn
//
this.updateBtn.Cursor = System.Windows.Forms.Cursors.Hand;
this.updateBtn.Location = new System.Drawing.Point(523, 511);
this.updateBtn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.updateBtn.Name = "updateBtn";
this.updateBtn.Size = new System.Drawing.Size(175, 28);
this.updateBtn.TabIndex = 1;
this.updateBtn.Text = "Oppdater tabell";
this.updateBtn.UseVisualStyleBackColor = true;
this.updateBtn.Click += new System.EventHandler(this.updateBtn_Click);
//
// DatabaseConnectionForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1156, 554);
this.Controls.Add(this.updateBtn);
this.Controls.Add(this.tableData);
this.Cursor = System.Windows.Forms.Cursors.Default;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.Name = "DatabaseConnectionForm";
this.Text = "Database Connection";
this.Load += new System.EventHandler(this.DatabaseConnectionForm_Load);
((System.ComponentModel.ISupportInitialize)(this.tableData)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.DataGridView tableData;
private System.Windows.Forms.Button updateBtn;
}
}

View File

@ -0,0 +1,52 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Windows.Forms.VisualStyles;
using MySql.Data.MySqlClient;
namespace DatabaseConnection
{
public partial class DatabaseConnectionForm : Form
{
private MySqlConnectionHandler _handler = null;
public DatabaseConnectionForm()
{
InitializeComponent();
}
private void DatabaseConnectionForm_Load(object sender, EventArgs e)
{
UpdateSize();
_handler = new MySqlConnectionHandler();
}
private void UpdateSize()
{
updateBtn.Left = (ClientSize.Width - updateBtn.Width) / 2;
}
private void updateBtn_Click(object sender, EventArgs e)
{
// Endrer teksten på "Oppdater"-knappen
// og tillatter ikke at knappen trykkes før dataen er hentet ut.
updateBtn.Text = "Henter ut data...";
updateBtn.Enabled = false;
// Henter dataen og bruker det returnerte "DataTable"
// og legger inn hele tabellen inn i formet.
var table = _handler.GetTableValues();
tableData.DataSource = table;
// Setter teksten på knappen tilbake til normal
// og lar knappen blir trykket inn igjen.
updateBtn.Text = "Oppdater tabell";
updateBtn.Enabled = true;
}
}
}

View File

@ -0,0 +1,380 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="$this.Locked" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
uP9idr3/Z37A/2l/vv9qgL7/Z3u2/2R1rPZpeKhtjJepAnaDqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKnugBab68Acoe2RGd/ueZph8f/dJTU/32b2/91kdX/aYDM/2J3
xf9gc8D/YHC5/2R1uv9me73/Z3y+/2qDw/9nfr7/ZXi1/2h4sN54i69lKV6INhFbhAsYW4MAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAX1FxAP8CAAAqVYMJGVuMIT1ynkBthbfFaIHC/2+Mz/95l9j/epbZ/3iR
1v9xhNL/anbN/216x/9wfMP/bnzA/2p6vv9kdbr/Y328/2aBwv9lerv/ZHe1/3mKsv0waZXvCWGSrAtx
nzURibkBDXinAAAAAAAAAAAAAAAAACtilQAyY5MLGmGXWRRknrQMaqveLXmz8mqHvv5rhsv/cIvR/3OS
0v92ktb/e5Pa/3mN2f94hdP/fIfQ/3N8yf9mb7//W2Wq/1RioP9OZ57/WHWx/192tv9bbKz/cYGy/1mL
s/8Hbqj/B3iu4Al/sm8NhLcPCH+wAByUzwAla5wALWyaERpkmJcNa6r3BnfA/wN5xf8+iMP/bYnE/2iC
x/9hfL7/Wnmz/1t0sv9gcbf/ZnXD/2ZzxP9jbr7/W2Sz/1VeqP9SXZ//TlyW/0Jajf9IYpv/Wm6r/1dk
o/9oeK7/gpu9/xx2rv8Dg8D/BYjB+gqDt6cQhrsYEIa6ACZ8sgYTbqWGC3Cv/AR9yP8Cesb/MYzJ/2WU
w/9jgcD/Ynq7/01lo/9CWZD/U2mk/2J1uv9kd73/ZXrA/19xtf9ba6v/WWal/15pqv9aa6v/TGKe/1dr
qv9jdLT/ZXWz/2Z4sf+Imbr/PIGy/wKAwP8Dicf/BofA/gp/s48PfbMIE3OsXgxxr/AFesX/A3jG/wh2
wv9yq9X/T3av/2R9vf9qgcL/YHS2/01gof9Taqr/aH3F/2Bvtv9VZqb/TmCc/0FMif8+RIX/UVqd/1ts
sP9gc7n/bn7G/3SEyv9zhMf/aHu3/36Ps/9vlrv/DnCw/wR3uP8FhMP/CX208w58sG0Sa6bQCHG4/wR2
xf8DcsL/D3S+/1uLvP8zSIv/b4nK/3qS1v91idD/bHzF/15vuP9kecH/YHO7/1Zmp/9kdLn/W2Wo/1tn
qv9cbLD/Xm+z/3WEzf9/jdj/fY3U/3OFyf9hdbP/Z3ql/36YuP87dan/FGqr/wZxtP8Iebf/DXar1BRt
q/UHdMD/BHTF/wNxwf8Kbbn/O2KV/y03cv9sicz/hJ7k/36S2/90hM3/ZXS8/11vs/9me8H/d4vW/32M
2/90gMz/YG2x/01dmP9VZaP/Xmus/2Burv9dbKr/Wmun/09hnf83QnH/TWCM/zxSgv80XZD/DG2z/wlw
sv8ObqX9HHi04Ah4xP8Fdsb/BHHC/wVsu/8rWoz/Jy9a/1Jsq/9nfb3/an68/2l8vP9hcbT/X3Cv/1Rm
ov9jeML/c4Xb/2t5yP9LVpL/UV6W/15trP9cbKj/V2mi/1hrof9WaJv/QlSD/x8mTP8mOW//KD52/ztR
gP8Yba//CW+z/xBoov8qiMBxEHq/9gZ4x/8FcsL/BGi2/x9Wjf8fJUj/M0Nt/1Vvqv9ferr/YHi2/15x
rf9hdK3/XG+m/0lZkP9tgdL/ZXO//z1Ebv9PXY7/UV+T/09Yhv9TXYz/SFiH/0tgj/88S3H/GBoy/yQw
Yv8xQXX/M01+/xFqrf8KcLP/FGuj9Eeo1g0Yf76dCXfC/wVxv/8FZrH/F1eT/x0jQP8nK0P/PFOE/0Vf
kv9UZJL/T1V4/0xUd/9OX4z/Pkt0/1Jhof9RXJj/PUNo/0hWg/9NVXf/Rkda/0pLZ/89RGz/Q1aD/zM+
Xf8bGin/Jy5V/zhFcv8fXpj/CWyu/xFyr/kheq+LGYO/AB2LxCAQer3JB3G+/wVmsv8SV5j/HSdH/yQm
OP8xPmb/OUt3/0RLaf9KS1r/TFJo/0ZVff8/THn/SVOL/01Ujf9HT33/SVN+/0lVe/9JVHT/RE1y/0BM
dv82QWj/IyxR/xoXJv8sMVX/I0+D/wtoqf8RdrPvJ4W6iEGUwRInoNQAD3e5ABmIxUUNdrvoBW28/wxc
pv8ZJUv/FRMk/x8nUP8vPWf/PU95/0lZfv9EU3v/OERy/zxHff9WYaL/X2iu/0pSkP86QG//MDRa/zM5
XP8zOFj/KClE/x4iQ/8aJE7/Hxko/yRCbf8PaqT/I5jK8DOs2mZXwe4ENLDhAAAAAAAfr+IAMP//AhOG
wmwLdLvyCWa2/xo1av8VEyb/ExxH/xkePP8nLkn/LTNN/yotSv84Pmn/TliQ/1tnpf9hba//V2Oi/0xY
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
AA/4AAA//gAAP/4AAD//AAA//4AAf/+AAP//wAP///AH///8D////z///////ygAAAAwAAAAYAAAAAEA
IAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWl5dAFpc
VwFaYW8EWWN3B1tjdwlXYnYJVmB3CVVecARPSUYBUFBSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUYnoAZ3anAFtq
iw1baY07WGSIaVVihItUYYOhVWGCtFRfgrxUYIW+WWOMu1plj6RaZo6HVGKIYUxcgTJJWn4MVtf9AElV
eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxv
lwBbbZIGXnScTWR6prBleantXGyg/VVkm/9VZZz/V2eb/1Fcl/9VYJ3/XWuk/15upf9fb6L/XGuY+1Zl
kOhTY4yzV2SMW2BojRBdZo0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AABbX34AXXSfAFxxmRRgdqKIY3ut72yIv/9visf/aYHB/2R7vv9mer3/ZXi6/2BttP9gcLT/ZXm4/2h7
uf9ne7b/ZHiw/2FyqP9eb6L/XGub9l1plrRibJM9jod8AWxyjQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAF1xngBacKMAW3ChG1xwpaZhd638aIS//3OR0P92lNX/cIzP/2uEy/9ug8v/bX/I/2Nz
vv9fcbn/Y3m9/2l/wv9qgMD/aH67/2d7t/9ne7b/ZHiw/2Byp/9hb57eZnKaQ2BumQAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGF4qgBid6cZX3itql94s/5hebv/bYrM/3eV1/94ldj/aoXM/2Z+
yf9qfcr/aHnG/11uvP9bb7j/YHW8/2V7wP9pf8H/aH+//2l/vv9qf73/aX26/2d5tP9jdaz/ZnWmvW99
pyJCVqsAhY+lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAb4KwAHSHsA5mfK+bZH+4/maEw/9rh8v/dpTV/32c
3P92lNf/a4jP/2V9yf9kecf/YnXD/11uu/9ZarT/Xm+4/19wuf9lfL7/ZX29/2uBwP9sg8L/aYC//2d7
uP9kd7P/ZHWt/2t6q6N3hKgJcoCpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOpsIAzendAnSKt3Vmfrf4aIXE/2uJ
y/91lNT/fJ3b/36c2/94lNf/b4nQ/2h+zP9hdcX/YnfE/2Fzv/9icbr/ZHS5/2d4vP9ofL7/ZXm8/2Z8
vv9qhMP/aYPD/2Z9vf9leLf/ZXe0/2d2sOSEkrWLWHqdaw9RfzkfZo0OGFV8ACFulwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmiVADBqmAACPGkDeZCxQW+F
t+ZlfL3/aoXI/2+Nz/94ldb/fZzb/3mW1/93kNX/dI7T/2590P9oc83/anfK/2p3xf9vesT/cH3C/218
v/9rfL//Z3i8/2J1u/9kf73/aITE/2iCxP9le7v/ZXq5/2R2s/99jLX/Z4Wl/Q9Qgu0OX4yvDWyaPAp6
qQMLc6MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmCUACdhlgUjXI8sHV2QXRdg
lIwbZZutXoKu2GuDu/9pgsb/bYjN/3OO0/94ltb/eJXZ/3mT2f96kdn/fJba/3OD1P9uds//dX/O/3eC
yf91f8X/cn7D/2x5wv9od77/Z3e5/2Bss/9ac6//W3i0/2WAwf9ke7z/YXa3/2J1tf9tfbH/gJi1/x9r
oP8HZZv/CW2e5Qp1pXYMfa8UB3aqABKDsQAAAAAAAAAAAAAAAAAAAAAAAAAAAGNkigC0ZnsBKmOXLxhi
mJYUYpriD2em/Alvs/8Ud7v/YIi5/2uHxP9siMv/a4XN/3GL0v9yktH/cZDS/3iT2P97lNv/fJPc/3qO
2/96itb/f43U/4CM1f92gM7/bXbJ/2JpvP9YXqf/UVuY/01dl/9JYpj/Smab/1l3tP9feLf/WWys/1pp
qP9jdK//iJi3/1ONtv8Fbqv/BXWw/wZ6sfoJfrC2CoK1PROKwAIPh7sAAAAAAAAAAAAAAAAASGmQAHlv
iAIrZJNUGGKX2A5npf8HdLv/BXvG/wJ5xv8egsX/aoy+/2yIyP9qhsn/aIPI/2aBxP9gf7r/Xn26/2J6
uv9jdbr/Z3fD/258zv9rdsz/Zm/D/2Jqvv9ZXrP/VFms/09Xof9MVZj/TViX/0pbkv9DWYv/QVyO/0pm
oP9Zca3/WGim/1Ndnv9gcaz/gY+1/4Wiwf8WcKr/BHWz/wOIxf8FiMD/CYG15A2Gu24jkMcIG4zCAAAA
AAAybqAAAGugACFuoU0UZprmC2ys/wV8x/8Dfsr/A3vH/wl5w/9RlMf/Z4vA/2qGxv9lfcL/XHa4/1Bs
qP9LZ5v/Tmif/1BloP9XaKr/V2et/1tss/9cbrn/X225/2But/9dbbL/W2qr/1tqqf9ebK3/XGip/1Rj
nv9GXJL/QFiQ/09kof9db6z/Xm6q/1xqp/9gc67/dYWx/5eow/82fbD/AnCu/wOOzP8Dj83/BoW+/wmC
tvINg7dgCIy3AA2BtwAWda0AHnSqLxBuptMKbav/BX7J/wN/y/8EecX/BHfC/1edzv98pcn/UXq3/2iC
wv9ke7z/WnGx/0Vbmv87UIn/RluT/1txr/9ofsH/aHnB/2l+wv9qgcX/ZHm+/19ysv9bbav/Wmin/1ll
o/9eaaj/YG2x/1ttrv9NZaH/Umem/2Bxs/9kdbb/Z3e3/2h5t/9kd7T/b4Cv/5Wjvv9ZjLf/BW6t/wSI
yf8DhsT/BIvI/wWHwf8KfbHaDX2yNAt8rQAheKsREXWvrAtvq/8Fe8T/A37L/wR5xv8CdcL/HH/F/6LI
5P9Ngbf/Tm+u/2iAv/9ogL//ZXu8/1lsr/9IW5z/Q1uW/1hwsP9pgMf/aXrF/2Z3vf9hdrf/V2yq/0la
lf9CTov/PUSD/ztAgv9JT5L/W2er/1xvsv9ZbrH/Zni9/2x8xP9wf8X/c4PH/3CCxP9pfLv/aXut/4iZ
tv+FoL//I3Ot/wNxtP8Fd7j/BITD/wSLyf8JfLP/DHuvvxGDuSAVcKlyDm2p9ghyt/8Fecb/BHfG/wRx
wP8BcL//OozH/5O31/8rTJH/VGys/3KLy/9yicv/cIXI/2x+w/9kdLr/VGaq/1hssf9jesL/ZXjB/0lW
m/86QYD/T1+c/1JhoP9JU5H/OkB8/0dRkv9XY6n/VWKl/1tusf9neMH/dIPO/3iG0/98i9T/e43S/3WI
y/9pfr7/Y3as/32Rsf+RqMP/VYq4/wVlqP8Faq7/BnS4/wZ6uv8GgL3/C3mt+w98sXwVbqnMDWel/wZ1
w/8EdsX/BHLB/wRzw/8Cbbv/NoS//1+IuP8aKXL/U2uq/3qW2P9+ltv/e5DX/3aJ0v9ygsz/aHbB/1xt
t/9hdrz/an/I/2h+xv9cbq//aHvA/2t6xP9lcLf/YGut/2d2uv9kdLr/Vmip/2R2vP94htD/gpHa/4OS
2/+Bktn/eIjN/3GDxf9leLj/VWeh/2l9o/+Bmbj/bo+0/zlwpf8ibKf/B2ux/wdusf8Gerz/C3Os/w53
qtAWbanrDWuu/wV4x/8Edcb/BHDB/wRywv8Da7n/JHS1/0tikP8eI2L/TGWl/3qY3P+Hoeb/hZzl/4CV
4f98jtr/dIPQ/2l6xv9kd77/Z3zD/26Fz/95jtX/f4/b/4CO2/92gs//bnnC/2Bvsf9SY6D/UWSi/1hp
qv9eaqz/ZHCy/2RxtP9hbrD/XG2t/15urv9Yaaj/QVKK/zhCb/9dcZj/TWKN/0FWhP8/W4n/GGyt/wZs
tP8JcLP/C2+s/w9wo/0cdK70DXC2/wV6yf8FdMT/BHLD/wNwwf8Da73/Fmyu/0JUff8kJ1b/P1SQ/3CP
1v9+mN7/eYzR/3GDxf9peLr/Xmus/1Rho/9RXp7/TV2Z/1hsrf9vg9H/d4nd/3qI3f92gtL/Z3O+/01Z
mP9ATIL/TlmT/1dkof9ZaKX/V2ej/1Vln/9WZpz/VWWa/1JhlP9NYJn/NUN0/x4iTf85TX3/JT94/yY/
d/87THn/L2qi/wZvuf8Kb7L/C3Cx/xFmmv8ogrnCEHS2/wZ7yv8Fd8f/BXXF/wRwwf8Da77/DW2y/zZW
g/8iJ0//LT1t/1l3uP9acK3/X3Kt/2l/u/9ug8L/a37B/2d4vf9pe7z/YnW0/01elf9ab7T/bIDV/3KE
3P9tfM7/Wmat/z9Kff9VYpn/Y3Gy/2J0s/9ecKz/Wmqj/1dpov9ZbaT/WW+l/1dqnf9LX4v/JzVc/xkd
Qf8kNm3/JTp1/y1BeP84SHf/PWOV/wtwt/8JbLD/C3Cz/xNil/87l8xPG3u36wp6xf8Gecj/BnfG/wVx
wP8Ea7z/CGGn/yxTgv8hJ0z/HiZK/0JXif9acq3/ZYDD/2WAxP9kfb7/YXa4/2B0s/9lebb/an++/15x
q/9CUYX/YnfC/3OH2/9ufs//UFmY/zc+Yv9SYJP/Vmae/09ek/9QXZH/VmCT/1NhlP9MXo//SV6N/0xk
lP9HW4X/IidD/xUVK/8gLGL/LDxz/zBCd/81QnL/LFyT/wlutf8Jb7P/DG+x/xZlmv143v8HKIvDihF4
vP0HeMf/BXXD/wVwvv8Fabf/B2Gp/yRVif8hJ0n/FRYs/zI+Yf9BXJT/TGmj/1Bspf9XbqX/WWqg/1Vi
k/9QXov/V2eX/1dqnP83QGL/TmGf/26D0/9qesr/Rk2D/zQ3U/9IV4T/SVaG/09Ygv9ESGj/RUZi/1RY
gf8/RnH/PEp1/0pfi/9CU3n/JChA/xcWJ/8jK1X/MD9y/zZDcv83TXv/FGWn/wdtsP8LcrT/EW6q/x1y
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMH9
/wC4/f8Bzv7+FcP+/lax/f21pP799Jb//v+F//7/ZPr+/zDq/v8v6///Ou7/0EPt/z3/5/8AWu3/AAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA9vL/ACfr5gDE8foOs/n9Uqf+/q+f//72gv7+/0z3/vVB8v6tWu7/MQDw
/wDT8/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/yf8Aq/z9AKz7/g2t+v1olvz9t2r7
/mFK8f4NO/b+AJvp/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDh
9ADO5PYCvO/6DKr0/AKo8/sAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAD///////8AAP//8A///wAA//+AAf//AAD//gAAf/8AAP/8AAAf/wAA//gAAB//AAD/8AAAD/8AAP/g
AAAH/wAA/8AAAAD/AAD/gAAAAD8AAPgAAAAAHwAA4AAAAAAHAADAAAAAAAMAAMAAAAAAAwAAgAAAAAAB
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAgAAAAAAAAADAAAAAAAEAAOAAAAAAAQAA4AAAAAAHAADwAAAAAA8AAPgAAAAAHwAA/AAAAAA/
AAD+AAAAAH8AAP8AAAAA/wAA/4AAAAH/AAD/wAAAA/8AAP/gAAAD/wAA//AAAAP/AAD/8AAAA/8AAP/4
AAAH/wAA//gAAAf/AAD//AAAD/8AAP/+AAB//wAA//8AAP//AAD//8AD//8AAP//+Af//wAA///+D///
AAD///8f//8AAP///////wAA////////AAA=
</value>
</data>
</root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,60 @@
using System.Data;
using MySql.Data.MySqlClient;
namespace DatabaseConnection
{
public class MySqlConnectionHandler
{
private MySqlConnection _connection = null;
public MySqlConnectionHandler()
{
Open();
}
public void Open()
{
// Sjekk at connection er definert.
if (_connection == null)
{
_connection = new MySqlConnection("server=localhost;user id=student_readonly;database=student2018");
}
// Pass på at connection er tilkoblet.
var state = _connection.State;
if (state == ConnectionState.Closed)
{
_connection.Open();
}
}
public void Close()
{
// Ikke prøv å lukke en connection som allerede er lukket.
if (_connection == null || _connection.State == ConnectionState.Closed)
{
return;
}
_connection.Close();
}
public DataTable GetTableValues()
{
// Lag et variabel som holder et midlertidig "DataTable"
var table = new DataTable();
// MySqlDataAdapter lar oss sende SQL-kode til serveren og hente ut
// dataen vi vil ha fra databasen.
var data = new MySqlDataAdapter($"select * from student", _connection);
// Fyller opp det midlertidige "DataTable"-variabelet med data
// fra MySQL-databasen som vi akkurat hentet ut.
data.Fill(table);
// Returnerer dataen som en "DataTable"-verdi
// Dette er ment til å brukes i "DataGridView" i form'et.
return table;
}
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace DatabaseConnection
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new DatabaseConnectionForm());
}
}
}

View File

@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("DatabaseConnection")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("DatabaseConnection")]
[assembly: AssemblyCopyright("Copyright © 2019")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("64f309cd-0aa7-4931-a725-48e2704009a0")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

View File

@ -0,0 +1,71 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseConnection.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DatabaseConnection.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,30 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace DatabaseConnection.Properties
{
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
{
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default
{
get
{
return defaultInstance;
}
}
}
}

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

BIN
DatabaseConnection/Icon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB