Hallo Ihrs
Momentan habe ich ein Problem mit dem Updaten des Datagridviews.
Mit Text, sowie Varchar(100) getestet:
Jedes mal wenn eine der Textspalten eine Leerstelle enthält,
FALSCH: Was muss man bei DateTime und Date - Spalten einrichten, dass es richtig geupdated wird?
will die DGV-Routine nicht mehr den Update der DB fahren.
Dieser Fehler tritt sonst nicht auf.
Da einige dieser Text-Zeilen Informationen sind, dürfen (müssen) diese auch Leerstellen enthalten.
Wie kann man diesen Fehler umgehen?
Bild des DataGridViews:
Bild der Fehlermeldung:
Ebenfalls:
Wie mache ich ein DGV mit mehreren Tabellen
inklusive INNER JOIN
und automatisiertem Updaten
der betroffenen Tabellen im DGV?
Wie man den SQL-Befehl selbst mit INNER JOIN selbst schreibt, ist mir bekannt.
Momentan habe ich ein Problem mit dem Updaten des Datagridviews.
Jedes mal wenn eine der Textspalten eine Leerstelle enthält,
will die DGV-Routine nicht mehr den Update der DB fahren.
Dieser Fehler tritt sonst nicht auf.
Da einige dieser Text-Zeilen Informationen sind, dürfen (müssen) diese auch Leerstellen enthalten.
Wie kann man diesen Fehler umgehen?
Bild des DataGridViews:
Bild der Fehlermeldung:
Ebenfalls:
Wie mache ich ein DGV mit mehreren Tabellen
inklusive INNER JOIN
und automatisiertem Updaten
der betroffenen Tabellen im DGV?
Wie man den SQL-Befehl selbst mit INNER JOIN selbst schreibt, ist mir bekannt.
VB.NET-Quellcode
- 'Aufruf des DGV
- Private Sub tsb_Komponenten_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSB_Komponenten.Click
- 'RemoveHandler PNL_KompListe_DGVKomp.RowEnter, AddressOf PNL_KompListe_DGVKomp_RowEnter
- Dim SplitStr As Char = CChar("\")
- Dim value() = TreeView.SelectedNode.FullPath.Split(SplitStr)
- Dim MultiList As List(Of List(Of String)) = FillWithTreeViewEntries(UBound(value))
- SQLKomp.ExecQuery("SELECT * FROM Komponenten", MultiList, "BMW")
- SQLKomp.loadgrid(PNL_KompListe_DGVKomp, "BMW")
- 'AddHandler PNL_KompListe_DGVKomp.RowEnter, AddressOf PNL_KompListe_DGVKomp_RowEnter
- PNL_KompListe.BringToFront()
- End Sub
VB.NET-Quellcode
- 'Quellcode der SQLKomp-Class
- Imports System.Data
- Imports MySql.Data.MySqlClient
- Public Class C_SQLControl
- 'CONNECTION
- Private SQLCmd As MySqlCommand
- 'SQL DATA
- Public SQLDA As New MySqlDataAdapter
- Public SQLDS As DataSet
- 'QUERY PARAMETERS
- Public params As New List(Of MySqlParameter)
- 'QUERY STATISTICS
- Public RecordCount As Integer
- Public Exception As String
- Public Sub ExecQuery(ByVal Query As String, ByVal Multilist As List(Of List(Of String)), ByVal DBSTR As String)
- Dim SQLCon As New MySqlConnection("server=192.168.20.181;Port=3306; User ID = User123456 password=PW123456 ; database=" & DBSTR & ";Convert Zero Datetime=True")
- Try
- SQLCon.Open()
- 'Create SQL COMMAND
- SQLCmd = New MySqlCommand(Query, SQLCon)
- Try
- For Each n In Multilist
- SQLCmd.Parameters.AddWithValue("@" & n(0), n(1))
- Next
- Catch ex As Exception
- 'NO PARAMETERS GIVEN :(
- End Try
- 'LOAD PARAMETERS INTO SQL COMMAND
- params.ForEach(Sub(x) SQLCmd.Parameters.Add(x))
- 'CLEAR PARAMETERS LIST
- params.Clear()
- 'EXECUTE COMMAND AND FILL DATASET
- SQLDS = New DataSet
- SQLDA = New MySqlDataAdapter(SQLCmd)
- RecordCount = SQLDA.Fill(SQLDS)
- SQLCon.Close()
- Catch ex As Exception
- Exception = ex.Message
- MsgBox(Exception)
- End Try
- If SQLCon.State = ConnectionState.Open Then SQLCon.Close()
- End Sub
- Public Sub loadgrid(ByVal dgv As DataGridView, ByVal DBStr As String)
- Dim SQLCon As New MySqlConnection("server=192.168.20.181;Port=3306; User ID=User123456 password=PW123456; database=" & DBSTR & ";Convert Zero Datetime=True")
- 'IF DATA IS RETURNED THEN POPULATE GRID AND BUILD UPDATE COMMAND
- ' If RecordCount > 0 Then
- dgv.DataSource = SQLDS.Tables(0)
- dgv.Rows(0).Selected = True
- 'DYNAMICALLY GENERATES UPDATE SCRIPT FOR ALL MODIFIED ENTRIES IN DGV
- SQLDA.UpdateCommand = New MySqlCommandBuilder(SQLDA).GetUpdateCommand
- ' End If
- End Sub
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gunngir“ ()