2009-04-22 8 views
0

OK - Ich habe diese Suche 40 verschiedene Möglichkeiten formuliert und ich scheinen hier verloren zu sein.Hinzufügen und Aktualisieren eines Datensatzes programmgesteuert mit .NETCF

Jedes Beispiel, das ich finde, scheint so glücklich zu sein, dass Sie ein Datagrid einfach ziehen und ablegen können und den Benutzer ausfüllen lassen - dann hören sie auf! Ich weiß, wie ich alles tun kann, was ich über LINQ anfordere. Das wird hier offensichtlich nicht übersetzt. Ich wirklich haben sollte zuerst ADO.NET gelernt, dann LINQ, aber Nooooo ...

Ich muss wissen, wie die folgende in .NETCF (Windows Mobile 5) unter Verwendung einer SQL CE-Datenbank auf dem Gerät zu tun.

  1. Fügen Sie einen neuen Datensatz hinzu und füllen Sie einige oder alle Felder mit Daten, die ich bereitstelle. Ich muss keinen Datensatz zu einem Datagrid hinzufügen - manchmal wird der Benutzer den Datensatz nicht einmal sehen. Wie füge ich einen neuen Datensatz hinzu - Daten eingeben und speichern? Beispiel: Erstellen Sie einen neuen Übermittlungsdatensatz und lassen Sie das Programm das Datum in einem Feld und eine Nummer in einem anderen Feld speichern.

  2. Suchen Sie nach einem Datensatz und aktualisieren Sie die Daten darin. Noch einmal, mit LINQ kann ich das leicht tun - ich kann nicht für das Leben von mir irgendwelche Beispiele finden, es ohne es zu tun. Ich kann viele Beispiele für das Auffüllen eines Gitters von datengebundenen Feldern finden, wobei der Benutzer Änderungen vornehmen und speichern kann. Ich muss das nicht tun.

sagen, dass ich für den einen Datensatz suchen muß, die ein Kriterium (customerID = 10 und orderID = 1234), dann, wenn (if), dass Datensatz gefunden wird, aktualisieren Sie ein Feld in ihm erfüllt.

Bitte lassen Sie mich wissen, wenn Sie weitere Informationen benötigen. Ich habe viel gelesen und es scheint einfach etwas zu verpassen!

Vielen Dank im Voraus ...

Antwort

4

Für # 1 gibt es ein paar Möglichkeiten. Zwei einfache, gebräuchliche Methoden sind:

Verwenden Sie ein SqlCeResultset, und erstellen Sie eine Zeile mit ihm, dann einfügen.

using(SqlCeConnection connection = new SqlCeConnection(myConnString)) 
using (SqlCeCommand cmd = new SqlCeCommand()) 
{ 
    connection.Open(); 
    cmd.CommandText = "MyTable"; 
    cmd.CommandType = CommandType.TableDirect; 
    cmd.Connection = Connection; 
    SqlCeResultSet rs = cmd.ExecuteResultSet(ResultSetOptions.Updatable); 

    SqlCeUpdatableRecord record = rs.CreateRecord(); 

    // do something to set your values in the record 

    rs.Insert(record); 
} 

einen SqlCeCommand verwenden, setzen den Befehl SQL und ExecuteNonQuery nennen.

using (SqlCeConnection connection = new SqlCeConnection(myConnString)) 
using (SqlCeCommand cmd = new SqlCeCommand()) 
{ 
    connection.Open(); 
    cmd.CommandText = "INSERT INTO MyTable(Foo) VALUES('bar')"; 
    cmd.CommandType = CommandType.Text; 
    cmd.Connection = Connection; 
    cmd.ExecuteNonQuery(); 
} 

für 2 # ist es nicht viel anders. Verwenden Sie eine aktualisierbare Ergebnismenge, suchen Sie nach der Aufzeichnung, ändern Sie sie und rufen Sie Update auf oder erstellen Sie Ihre SQL und senden Sie sie über den Befehl mit ExecuteScalar oder ExecutNonQuery. Der Code ist ähnlich wie oben, dass ich es Ihnen überlassen werde, es auszuarbeiten.

Eine schnelle Suche nach "SqlCeResultSet" und "example" oder "update example" liefert viele relevante Ergebnisse.

0

Danke,

Zwischen diesem und dieser Code hier, ich glaube ich auf dem Weg bin.

Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click 

    Dim con As SqlCeConnection 

    con = New SqlCeConnection(("Data Source = " & Me.NorthwindDatabaseFullPath)) 
    con.Open() 

    Dim sqlcdm As String = "INSERT INTO Orders VALUES(999, 'ALFKI', 1, 'RUDEDOG', '', '', '', '', '', 2, '11/15/1967', '11/16/1967', '11/17/1967', '23')" 

    Dim SqlCeCommand As New SqlCeCommand(sqlcdm, con) 

    SqlCeCommand.ExecuteNonQuery() 

End Sub 
0

Auch für alle anderen Benutzer dieses Buch auch ein wirklich gutes Kapitel auf dieser procudere hat: http://my.safaribooksonline.com/0321174046

ich noch meine durch dieses Problem arbeite aber gute Fortschritte machen,

Vielen Dank für die Hilfe.

Verwandte Themen