- Details
- Kategorie: devCS
- Zugriffe: 15544
NET-Referenzen:
[ → ]
Hier eine Sammlung von Links um einen Überblick über die Möglichkeiten des NET-Frameworks zu erhalten.
Zum Teil sind hier die Referenzen aus obigem Kontext wiederholt.
- Details
- Kategorie: devCS
- Zugriffe: 12967
ADO.NET Übersicht
[ → ]
Über ActiveX Data Objects(ADO) stehen Klassen zum Zugriff auf relationale Datenbanken zur Verfügung.
Hier ein kurzer Überblick um das Zusammenspiel der Klassen und die Einsatzmöglichkeiten zu erkennen.
Die Connection-Klasse stellt 4 DataProvider zur Verfügung:
SqlConnection
OleDbConnection
OdbcConnection
OracleConnection
Es bestehen dann z.B. für den Zugriff auf Oracle-DBs eigene Klassen im Namesraum System.Data.OracleClient-NameSpace.
Die Steuerung des Zugriffs erfolgt aber bei allen DataProvidern in der selben Art und Weise.
Die Command-Klasse unterstützt verschiedene Abfrage-Aktionen mit der Datenbank:
ExecuteReader(Ergebnisliste von Datensätzen),
ExcecuteNoneQuery(Datenbankänderungen),
ExecuteScalar(Einzelner Wert z.B. Anzahl Datensätze)
Der DataAdapter unterstützt verschiedene Update-Aktionen:
SelectCommand
UpdateCommand
InsertCommand
DeleteCommand
Wobei für die DataAdapter-Klasse die beiden Hauptmethoden Fill und Update(Update-Aktionen) existieren.
Zum Verständnis,
der DataSet stellt als InMemory Datenbank eine Spezialität dar, da hier Daten losgelöst
von der Datenbankverbindung im Speicher geändert werden können.
Die DataSets können von einem GridView-Element innerhalb einer WebForm konsumiert
werden(ASP.NET-Anwendung).
Die Klassen
DataSet (Repräsentation der Daten) bzw.
DataTable
arbeiten verbindungslos.
string strCon = @"Data Source=SONY\MYSQLSERVER;" +
"Initial Catalog=Northwind;Integrated Security=SSPI";
string strSql="select * from customers";
SqlConnection con=new SqlConnection(strCon);
con.Open();
SqlDataAdapter dadapter=new SqlDataAdapter();
dadapter.SelectCommand=new SqlCommand(strSql,con);
DataSet dset=new DataSet();
dadapter.Fill(dset);
con.Close();
this.dataGrid1.DataSource=dset;
Das Zusammenspiel der einzelnen Klassen ist hier ersichtlich. Ein Code-Beispiel das eine Änderung in einer Datenbank vornimmt: d.h. ExecuteNoneQuery
- Details
- Kategorie: devCS
- Zugriffe: 16169
Office-Objekte über C# verarbeiten
[ → ]
Der Zugriff auf Office erfolgt über Office-Interop-Objekte mit Hilfe von C#-Funktionen
Hier ein Beispiel:
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 Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;
namespace OfficeAccess
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//Excel aufrufen
var excelApp = new Excel.Application();
excelApp.Visible = true;
excelApp.Workbooks.Add();
Excel._Worksheet worksheet = (Excel._Worksheet)excelApp.ActiveSheet;
worksheet.Cells[1,1]="Wert1";
}
private void button2_Click(object sender, EventArgs e)
{
//Word
var wordApp = new Word.Application();
wordApp.Visible = true;
wordApp.Documents.Add();
wordApp.Selection.InsertAfter("Test Word");
}
}
}
- Details
- Kategorie: devCS
- Zugriffe: 10933
XML-Datei einlesen
[ → ]
Über die Klasse XDocument lässt sich eine XML-Datei mit wenig Aufwand einlesen (LINQ to XML).
Beispiel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace ReadXMLDoc
{
class Program
{
static void Main(string[] args)
{
XDocument xml = XDocument.Load(@"C:\Temp\setting.xml");
var xmlQuery = from item in xml.Descendants("settings")
select item;
foreach (XElement items in xmlQuery)
{
Console.WriteLine(items.Element("Datum").Value);
Console.WriteLine(items.Element("Wert1").Value);
Console.WriteLine(items.Element("Wert2").Value);
Console.WriteLine(items.Element("Wert3").Value);
Console.WriteLine(items.Element("Wert4").Value);
}
Console.ReadLine();
}
}
}
setting.xml
<settings>
<Datum>9 Januar</Datum>
<Wert1>eins</Wert1>
<Wert2>zwei</Wert2>
<Wert3>drei</Wert3>
<Wert4>vier</Wert4>
</settings>
Alternativ kann ein XML-Stream verarbeitet werden (z.B. aus einem Webservice)
Es werden die Knoten des XML-Streams durchlaufen und über switch/case einzelne Textelemente gelesen.
Beispiel:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.IO;
using System.Xml;
namespace WbsRequest
{
var stream = t.Result;
using (var reader = new StreamReader(stream))
{
ename = "";
outList = "";
XmlTextReader xmlreader = null;
xmlreader = new XmlTextReader(stream);
i=0;
while (xmlreader.Read())
{
switch (xmlreader.NodeType)
{
case XmlNodeType.Element: // Der Knoten ist ein Element.
ename=xmlreader.Name;
break;
case XmlNodeType.Text: //Anzeige des Textes in jedem der Elemente.
if (ename == "postalcode")
{
i = i + 1;
outList += xmlreader.Value + "?";
Orte[i] = xmlreader.Value;
}
if (ename == "name")
{
outList += xmlreader.Value + "|"; //letztes Element
Orte[i] = xmlreader.Value;
}
break;
case XmlNodeType.EndElement: //Ende der Elementanzeige.
Console.Write("</" + xmlreader.Name+">");
break;
}
}
}
Console.ReadLine();
}
- Details
- Kategorie: devCS
- Zugriffe: 17773
Personen in einer Liste verwalten
[ → ]
Auch komplexe Objekte können in Listen verwaltet werden.
Die Verwaltung erfolgt in einer Collection.
Listing:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//Liste anlegen
List<Person> Personen = new List<Person>();
Personen.Add(new Person("Einstein","Teststr. 10","70565","Stuttgart"));
Personen.Add(new Person("Maier", "Neuestr. 14", "70565", "Stuttgart"));
Personen.Add(new Person("Bauer", "Hauptstr 5", "8000", "München"));
//Personen ausgeben
foreach (Person p in Personen) {
Console.WriteLine(p.Name+" / "+p.Strasse+ " / " + p.Plz+ " / " + p.Ort);
}
//Person anlegen
Person micha = new Person("Mustermann","Neuer Weg 10","60000","Frankfurt");
micha.Name = "Müller";
Console.WriteLine(micha.Name);
Console.ReadLine();
}
}
class Person
{
private string name;
private string strasse;
private string plz;
private string ort;
//Kontruktor
public Person(string sName, string sStrasse,string sPlz, string sOrt)
{
name = sName;
strasse = sStrasse;
plz = sPlz;
ort = sOrt;
}
//Getter Setter Methoden
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
public string Strasse
{
get
{
return strasse;
}
set
{
strasse = value;
}
}
public string Plz
{
get
{
return plz;
}
set
{
plz = value;
}
}
public string Ort
{
get
{
return ort;
}
set
{
ort = value;
}
}
}
}