ho un piccolo problemino con l'sql....
allora il database
con
Public $conn As New Connection
Public sqliteName As String = "db"
Public sqlitePercorso As String = Application.Path
nel modulo gestisci_db
si crea
Public Sub controlladb()
If Not Exist(sqlitePercorso &/ sqliteName) Then
If Message.Question("Il database non esiste!, Lo creo?", "Si") = 1 Then
With $conn
.Type = "sqlite3"
.Host = sqlitePercorso
End With
$conn.Open
$conn.Databases.Add(sqliteName)
$conn.Close
$conn.Name = sqliteName
$conn.Open()
creatabella()
Endif
Endif
End
Public Sub creatabella()
Dim n As Byte
Dim sql As String
Dim htable As Result
sql = "CREATE TABLE 'db' ("
sql &= " 'id_db' INTEGER PRIMARY KEY,"
sql &= " 'nome' varchar(20) DEFAULT NULL,"
sql &= " 'cognome' varchar(20) DEFAULT NULL,"
sql &= " 'citta_n' varchar(30) DEFAULT NULL,"
sql &= " 'nato_il' varchar(15) DEFAULT NULL);"
hTable = $conn.Exec(sql)
$conn.Commit
$conn.Close
End
sempre nel modulo
ci si connette con
Public Sub Connect()
$conn.Close
$conn.Type = "sqlite3"
$conn.Host = sqlitePercorso
$conn.Name = sqliteName
$conn.Open
End
sempre nel modulo
ora io ho 2 form uno con tutta la tabella (una grossa gridview) e uno per inserire le nuove rige con le varie texbox etc...
e per caricare la tabella sulla grid si fà
Public Procedure riempi_grid()
Dim n As Integer
sql = "SELECT * FROM db"
MyRS = gestisci_db.$conn.Exec(sql)
grid_db.Clear
grid_db.Mode = Select.Multiple
grid_db.Header = grid_db.Both
grid_db.Columns.Count = 11 ''' 'imposta il numero di colonne della GridView1
grid_db.Columns[0].Text = "id" '' 'titolo prima colonna
grid_db.Columns[1].Text = "cognome"
grid_db.Columns[2].Text = "nome"
grid_db.Columns[3].Text = "città/paese natale"
grid_db.Columns[4].Text = "data di nascita"
If MyRS.Available = True Then
grid_db.Rows.Count = MyRS.Count 'imposta il numero di record in base al numero di risuktati presenti
n = 0
For Each MyRS
grid_db[n, 0].Text = MyRS!id_db 'inizio del ciclo
grid_db[n, 1].Text = MyRS!cognome '''
grid_db[n, 2].Text = MyRS!nome '''
grid_db[n, 3].Text = MyRS!citta_n
grid_db[n, 4].Text = MyRS!nato_il
Inc n
Next
Else
grid_db.Header = grid_db.None
grid_db.Columns.Count = 1
grid_db.Rows.Count = 1
grid_db[0, 0].Text = "Nessun dato" 'viene visualizzata la scritta "nessun dato"
Endif
End
in f_db
per riempire le text con i dati presi dal db
Public MyRS As Result
Public sql As String
Public Procedure riempi_caselle()
MyRS.MoveTo(c_var.send_row) 'la variabile che [u]in teoria[/u](sottolineato :D) contiene la riga cliccata
Print c_var.send_row
MyRS = gestisci_db.$conn.Exec(sql)
tb_cognome.Text = MyRS!cognome
tb_nome.Text = MyRS!nome
tb_citta_n.Text = MyRS!citta_n
tb_nato_il.Text = MyRS!nato_il
End
in f_nuovo
adesso
come vaccio a creare una nuova riga, sapere che riga è e comunicarlo all'altro form in modo che quando deve poi salvare sappia su quale riga.
quando si dblclick su una riga: come sapere su quale riga si è cliccato e a quale id corrisponde e comuncarlo all'altro form in modo che sappia dove deve poi andare a salvare
quando si salva come posso fare in modo che salvi sulla riga giusta?...
il problema principale è comunicare continuamente su quale riga si sta lavorando...
e da un bel pò di tentativi sono arrivato ad un punto morto....
spero di essermi spiegato...
P.S.
il database usato da me contiene più del triplo degli elementi.....