SqlCommand cmd = new SqlCommand(
"SELECT eID FROM Events WHERE DateTimeCreted = @DateTimeCreated, con);
cmd.Parameters.Add("@DateTimeCreated", SqlDbType.DateTime).Value = created ;
Original von MjReaper
ich habe das mal überprüft, in der Tat ist der sender eine "ProgrammListe" (abgeleitet von ListView).
Doch ein Problemchen habe ich jetzt noch:
Wie lese ich den Index des selektierten Elements (ohne MultiSelect) aus? Ich meine, so etwas wie SelectedIndex gibt es nicht, nur SelectedIndices, aber das ist auch kein int-Array...
foreach ( ListViewItem item in ProgrammListe.SelectedItems)
{
item dürfte dir dann helfen..
((ListenElement)item).Members
}
Original von dgroeser
Was ich nicht verstehe ist, wenn ich zu einen Dataset eine Tablle zufügen möchte dann kann ich das nur mit den dataadapter???
Oder wie geht das ohne adapter weil ich brauche meinen wissens keinen adapter da die Datei lokal liegt
dataadapter.Fill(dataset); // Warum, was ist wenn ich nur eine Datasetz habe wie bekomme ich dann die Table bzw. die Relationen in den Dataset??
Nur weil beides DataSet DataAdapter jeweils Data im Namen haben, sind diese
nicht direkt von einander abhängig.
DataSet, DataTable, DataRow sind Container zur Daten bzw Objektablage und verweilen ihr dasein im Arbeitsspeicher.
Der DataAdapter und seine Erben bringen die zwei Welten Arbeitsspeicher und Persistenz zusammen.
Bei DataAdapter.Fill(DataSet) z.b. liest der DA mit Hilfe von SQL die Daten aus einer Datenbank und erstellt innerhalb des DataSet, DataTable und DataRow Objekte.
Um aber einem DataSet eine Tabelle hinzuzufügen reicht schon
DataSet.Tables.Add aus.
Wenn Du nun z.B: via System.IO.FileStream Daten aus deiner Persintenz einliest
und sie dann wie auch immer in ein DataTable bringst ist nicht der DataAdapter dein "Transporteur" sondern deine Klasse mit dem System.IO
Wenn die Daten also zurück in das System.IO sollen muss deine Klasse die Arbeit übernehmen.
Die Daten innerhalb der DataTable befinden sich in DataRows lässt den Verdacht aufkommen es handelt sich um eine Collection, von daher wendet man die Iteration an um Row für Row die Daten auszulesen und um die Daten dann letztenendes zur Speicherung weiterzuverarbeiten.
StringBuilder sb = new StringBuilder();
sb.Append("<DataTable>");
foreach(System.Data.DataRow row in DataTable.Rows)
{
sb.AppendFormat("<DataRowv id={0} wert={1} />", row[0], row[1]);
}
sb.Append("</DataTable>");
// Noch einfacher wäre es direkt xml zu verwenden mit Hilfe der
// DataSet.ReadXml oder WriteXml Methoden.
Jetzt nur noch sb.ToString() in ein TextFile schreiben
Denn web.config erbt von maschine.config !!!!!!!!!!
Ändere mal das
<add name="BundesligaConnectionString" connectionString="Data Source=mssql03.1und1.de;Initial Catalog=*******;Persist Security Info=False; User ID=*****; Password=*******" providerName="System.Data.SqlClient"/>
Original von xXeRaptorXx
Mein Problem ist jetzt nur: Wieso?
Ich meine, der Variable var ist ein float Wert zugewiesen bekommen (0.42F) und man hätte eigentlich doch nur:
value.Text = var;
schreiben müssen, oder nicht?
Könnt ihr mir das erklähren?
C# ist sehr penibel was Typensicherheit angeht, wenn Du vorher
PHP oder ASP(Classic) oder ähnliche Sprachen verwendet hast
wirst Du dich drangewöhnen müssen.
Aber der Compiler wird Dich dabei schon unterstützen, in dem er Dir
Fehlermeldungen beschert.
Das schöne ist das es die Methoden ToString(); Convert. etc. gibt
die Dir helfen werden.
Auf dem Bildschirm: Bei einer ConselenAnwedung Console.WriteLine("Schreib mal ne Zeile"); verwenden.
//Nur so mal aus dem Bauch pseudo Code
// erster Aufruf mit stepForward true;
void FindeDoppelte( LinkedList<> liste, bool stepForward)
{
foreach(... in liste)
{
if(stepForward)
liste.MoveNext;
LinkedListNode<string> current = liste.FindLast(liste.Current.Value);
if(!current.Equals(liste.Current))
{
liste.Remove(current);
// Und hier dann ein nochmaliger Aufruf
FindeDoppelte(liste, false);
}
else
{
liste.MoveNext;
}
}
}
// Na ja irgendwie so in der Art
// is schon spät 8) - gute Nacht.
Dann lass es auf dbo oder liese was 1&1 zu diesem dbo sagt.
Zur Userverwaltung:
ProviderException: The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.]
System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile
Da steht doch der Fehler: Er möchte noch mit Express arbeiten.
try
{
m_WareInputs.Rows.Add(m_WareInputsData);
}
catch(Exception e)
{
// Dann hier ein LOG schreiben oder den Fehler halt einfach nur abfangen
// e.Message e.StackTrace liefernDir hat mehr Infos
// evtl. einen anderen ExceptionTyp verwenden
}
// erweitere diese Zeile
m_WareInputs.PrimaryKey = new DataColumn[] { m_WareInputs.Columns[0] };
// z.b. so
m_WareInputs.PrimaryKey = new DataColumn[] { m_WareInputs.Columns[0],m_WareInputs.Columns[1] };
Die nötigen Dateien auch in den Ordner Web gelegt.
In der web.config unter appSettings
<add key="Window_Title" value="UTH Consulting - SQLAdmin"/>
<add key="Window_Width" value="800"/>
<add key="Window_Height" value="560"/>
<add key="Window_Sizable" value="true"/>
<add key="Culture" value="de-DE"/>
Da frage ich mich was man noch mit den kostenpflichtigen Tools von Flesk und Intesoft noch erreichen kann um die Performance zu steigern?
Die komprimieren den AusgabeStrom mit gzip, da die meisten Browser das erkennen können und wieder entpacken, noch ne Browserweiche rein damit die "dummen" Browser unkomprimierte HTML erhalten.
Generierung von Datenbankerstellungs- und Objektscripten auf dem Express System.
Ausführen dieser Scripte auf dem SQL2000 System. SQL funktioniert meistens.