| 

.NET C# Java Javascript Exception

3
Hallo,
weiß jemand wo ich einen Codeschnipsel für C# finde der dein DataTable in einem SQL2005 Datenbank Tabelle schreibt? (fürs Auslesen wäre auch nett!)

Oder hat jemand einen Tipp wie ich das anstelle?

Was haltet Ihr von der Lösung:
DataTable nach XML konvertieren und dann in einer XML-Column schreiben?

Danke!
27.01.2012
MarcusS 207 1 5
MarcusS 207 1 5
1 Antwort
1
Der SqlDataAdapter kann zum lesen und zum schreiben verwendet werden:

SO WIRD'S GEMACHT: Aktualisieren einer SQL Server-Datenbank mit dem SqlDataAdapter-Objekt in Visual Basic .NET

Auslesen geht so:
string connectionString = "...";
string queryString = "select * from table";

DataSet ds = new DataSet();

using (SqlConnection connection = new SqlConnection(connectionString)){
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = new SqlCommand(queryString, connection);
adapter.Fill(ds);

Console.WriteLine(ds.Tables.Count); //1
Console.WriteLine(ds.Tables[0].Rows.Count); //Anzahl der Zeilen in der ersten Tabelle
}


Ein Dataset kann aus mehreren Tabellen bestehen.

Beim schreiben kannst du den Weg über den SqlCommandBuilder gehen (so wie in dem Artikel oben beschrieben), aber du kannst auch direkt Einfluss auf die Statments nehmen. Das könnte dann so aussehen:

//Connecting database
con = new SqlConnection("Data Source=mysource;Initial Catalog=mydbname;uid=sa");

//create sql adapter for the "emp" table
SqlDataAdapter sqlDa = new SqlDataAdapter("select * from emp", con);

//create dataset instance
DataSet dSet = new DataSet();

//fill the dataset
sqlDa.Fill(dSet, "emp");

//hier kannst du das DataSet nun modifizieren in dem du Zeilen aus den Tabellen löschst, hinzufügst oder veränderst.

//build select command
SqlCommand selCmd = new SqlCommand("select * from emp",con);
sqlDa.SelectCommand=selCmd;

//build insert command
SqlCommand insCmd = new SqlCommand(
"insert into emp (Name, Age) values(@Name, @Age)",con);
insCmd.Parameters.Add("@Name", SqlDbType.NChar, 10, "Name");
insCmd.Parameters.Add("@Age", SqlDbType.Int, 4, "Age");
sqlDa.InsertCommand = insCmd;

//build update command
SqlCommand upCmd = new SqlCommand(
"update emp set Name=@Name, Age=@Age where No=@No",con);
upCmd.Parameters.Add("@Name", SqlDbType.NChar, 10, "Name");
upCmd.Parameters.Add("@Age", SqlDbType.Int, 4, "Age");
upCmd.Parameters.Add("@No", SqlDbType.Int, 4, "No");
sqlDa.UpdateCommand = upCmd;

//build delete command
SqlCommand delCmd = new SqlCommand(
"delete from emp where No=@No",con);
delCmd.Parameters.Add("@No", SqlDbType.Int, 4, "No");
sqlDa.DeleteCommand = delCmd;

//now update the data adapter with dataset.
sqlDa.Update(dSet,"emp");


Quelle des Beispiels: SQLDataAdapter without using SQLCommandBuilder

Zu deiner zweiten Frage:

Eine DataTable kannst du mit den Funktionen ReadXml und WriteXml in XML konvertieren. Ob das Sinnvoll ist hängt von deinem Anwendungsfall ab.
27.01.2012
Floyd 14,6k 3 9
Floyd 14,6k 3 9
perfekt! Danke...
ReadXml und WriteXml habe ich auch gefunden...werde die beiden Methoden mal probieren.
MarcusS 27.01.2012

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH