Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    [VB.NET]DateBase per Pocket

    Ho un problema con la gestione di due tabelle in un unico database .sdf
    Il problema che mi si presenta è quello di dovere gestire due tabelle nel mio pocket pc, il codice che stò usando è il seguente: premetto che se lo utilizzo con una sola tabella fila liscio cioè:

    codice:
     Private Sub BindText()
            txtgiorno.DataBindings.Clear()
            txtEntrata.DataBindings.Clear()
            txtUscita.DataBindings.Clear()
            TextBox3.DataBindings.Clear()
    
            txtgiorno.DataBindings.Add("Text", dataSet.Tables(0), "Giorno")
            txtEntrata.DataBindings.Add("Text", dataSet.Tables(0), "Entrata")
            txtUscita.DataBindings.Add("Text", dataSet.Tables(0), "Uscita")
            TextBox3.DataBindings.Add("Text", dataSet.Tables(0), "Totale")
    End Sub

    ma se utilizzo così questo mi và in errore con messaggio di There is a file sharing violation. A different process might be using the file. [,,,,,]

    codice:
     Private Sub BindText()
            txtgiorno.DataBindings.Clear()
            txtEntrata.DataBindings.Clear()
            txtUscita.DataBindings.Clear()
            TextBox3.DataBindings.Clear()
    
            txtgiorno.DataBindings.Add("Text", dataSet.Tables(0), "Giorno")
            txtEntrata.DataBindings.Add("Text", dataSet.Tables(0), "Entrata")
            txtUscita.DataBindings.Add("Text", dataSet.Tables(0), "Uscita")
            TextBox3.DataBindings.Add("Text", dataSet.Tables(0), "Totale")
            
            '******************************
    
            txtnumero.DataBindings.Clear()
            txtEntrata.DataBindings.Clear()
            CboAltro.DataBindings.Clear()
            txtResiduo.DataBindings.Clear()
            txtRimanenza.DataBindings.Clear()
    
            txtnumero.DataBindings.Add("Text", dataSet.Tables(0), "Giorni")
            txtData.DataBindings.Add("Text", dataSet.Tables(0), "Data")
            CboAltro.DataBindings.Add("Text", dataSet.Tables(0), "Altro")
            txtResiduo.DataBindings.Add("Text", dataSet.Tables(0), "Residuo")
            txtRimanenza.DataBindings.Add("Text", dataSet.Tables(0), "Rimanenza")
    
        End Sub
    codice:
    Imports System.Data.SqlServerCe
    
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Private dataAdapter As SqlCeDataAdapter
        Private dataSet As DataSet
        Private Const db = "\My Documents\ore.sdf"
    
     Private Sub BindText()
            txtgiorno.DataBindings.Clear()
            txtEntrata.DataBindings.Clear()
            txtUscita.DataBindings.Clear()
            TextBox3.DataBindings.Clear()
    
            txtgiorno.DataBindings.Add("Text", dataSet.Tables(0), "Giorno")
            txtEntrata.DataBindings.Add("Text", dataSet.Tables(0), "Entrata")
            txtUscita.DataBindings.Add("Text", dataSet.Tables(0), "Uscita")
            TextBox3.DataBindings.Add("Text", dataSet.Tables(0), "Totale")
            
            '******************************
    
            txtnumero.DataBindings.Clear()
            txtEntrata.DataBindings.Clear()
            CboAltro.DataBindings.Clear()
            txtResiduo.DataBindings.Clear()
            txtRimanenza.DataBindings.Clear()
    
            txtnumero.DataBindings.Add("Text", dataSet.Tables(0), "Giorni")
            txtData.DataBindings.Add("Text", dataSet.Tables(0), "Data")
            CboAltro.DataBindings.Add("Text", dataSet.Tables(0), "Altro")
            txtResiduo.DataBindings.Add("Text", dataSet.Tables(0), "Residuo")
            txtRimanenza.DataBindings.Add("Text", dataSet.Tables(0), "Rimanenza")
    
        End Sub
    
        Private Function ExecSql(ByVal sql As String) As Boolean
            Dim cn As New SqlCeConnection("Data Source=" + db)
            Dim cmd As New SqlCeCommand(sql, cn)
            cmd.CommandType = CommandType.Text
            Try
    
                cn.Open()
                cmd.ExecuteNonQuery()
                cmd.Dispose()
                cn.Close()
    
                Return True
            Catch ex As Exception
                Return False
            End Try
        End Function
    
    
    
     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txtgiorno.Text = Format((Now), "dd/MM/yy")
            txtData.Text = Format((Now), "dd/MM/yy")
            If (System.IO.File.Exists(db)) Then
    
                Dim cn As New SqlCeConnection("Data Source=" + db)
                Dim commandBuilder As SqlCeCommandBuilder
                dataAdapter = New SqlCeDataAdapter("Select * from ore order by Giorno asc", cn)
                commandBuilder = New SqlCeCommandBuilder(dataAdapter)
                dataSet = New DataSet
                dataAdapter.Fill(dataSet)
                Application.DoEvents()
                DataGrid1.DataSource = dataSet.Tables(0)
                ComboBox1.DataSource = dataSet.Tables(0)
                ComboBox1.DisplayMember = "Giorno"
                BindText()
            Else
                Dim create As String
                Dim eng As SqlCeEngine
                eng = New SqlCeEngine("Data Source=" + db)
                eng.CreateDatabase()
                create = "CREATE TABLE ore(Giorno nvarchar(20) PRIMARY KEY not null,Entrata nvarchar(20) not null,Uscita nvarchar(30) not null,Totale nvarchar(30) not null)"
                ExecSql(create)
                Me.Close()
            End If
    
    
        End Sub
    
    
    Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
            ExecSql("INSERT INTO ferie VALUES ('" & Me.txtData.Text & "','" & Me.txtnumero.Text & "','" & Me.CboAltro.Text & "','" & Me.txtResiduo.Text & "','" & Me.txtRimanenza.Text & "')")
            RadioButton1.Checked = False
            Dim cn As New SqlCeConnection("Data Source=" + db)
            Dim commandBuilder As SqlCeCommandBuilder
            dataAdapter = New SqlCeDataAdapter("Select * from ferie", cn)
            commandBuilder = New SqlCeCommandBuilder(dataAdapter)
            dataSet = New DataSet
            dataAdapter.Fill(dataSet)
            DataGrid3.DataSource = dataSet.Tables(0)
            BindText()
    End Sub
    End Class

  2. #2
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ripropongo il problema,


    codice:
    Imports System.Data.SqlServerCe
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Private dataAdapter As SqlCeDataAdapter
        Private dataSet As DataSet
        Private Const db = "\My Documents\ore.sdf"

    codice:
    Private Function ExecSql(ByVal sql As String) As Boolean
            Dim cn As New SqlCeConnection("Data Source=" + db)
            Dim cmd As New SqlCeCommand(sql, cn)
            cmd.CommandType = CommandType.Text
            Try
    
                cn.Open()
                cmd.ExecuteNonQuery()
                cmd.Dispose()
                cn.Close()
    
                Return True
            Catch ex As Exception
                Return False
            End Try
        End Function
    codice:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            txtgiorno.Text = Format((Now), "dd/MM/yy")
            txtData.Text = Format((Now), "dd/MM/yy")
            If (System.IO.File.Exists(db)) Then
                Dim cn As New SqlCeConnection("Data Source=" + db)
                Dim commandBuilder As SqlCeCommandBuilder
                dataAdapter = New SqlCeDataAdapter("Select * from ore", cn)
                commandBuilder = New SqlCeCommandBuilder(dataAdapter)
                dataSet = New DataSet
                dataAdapter.Fill(dataSet)
                Application.DoEvents()
                DataGrid1.DataSource = dataSet.Tables(0)
                ComboBox1.DataSource = dataSet.Tables(0)
                ComboBox1.DisplayMember = "Giorno"
               
            Else
                Dim create As String
                Dim eng As SqlCeEngine
                eng = New SqlCeEngine("Data Source=" + db)
                eng.CreateDatabase()
                create = "CREATE TABLE ore(Giorno nvarchar(20) PRIMARY KEY not null,Entrata nvarchar(20) not null,Uscita nvarchar(30) not null,Totale nvarchar(30) not null)"
                ExecSql(create)
                Me.Close()
            End If
    
    
        End Sub

    inserisco il record
    codice:
    Private Sub RadioButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles RadioButton2.Click
    
    
            Dim tstr As String = Date.Parse(Me.txtUscita.Text).Subtract(Date.Parse(Me.txtEntrata.Text)).ToString()
            TextBox3.Text = tstr.Substring(0, tstr.LastIndexOf(":"c))
            Dim response As MsgBoxResult
            response = MsgBox("Attenzione stai per Aggiungere! _ " & txtEntrata.Text & "  Sei sicuro? ", MsgBoxStyle.YesNo, "Database")
            If response = MsgBoxResult.Yes Then
                ExecSql("INSERT INTO ore VALUES ('" & Me.txtgiorno.Text & "','" & Me.txtEntrata.Text & "','" & Me.txtUscita.Text & "','" & tstr.Substring(0, tstr.LastIndexOf(":"c)) & "')")
                DataGrid1.Refresh()
                Dim cn As New SqlCeConnection("Data Source=" + db)
                Dim commandBuilder As SqlCeCommandBuilder
                dataAdapter = New SqlCeDataAdapter("Select * from ore order by Giorno asc", cn)
                commandBuilder = New SqlCeCommandBuilder(dataAdapter)
                dataSet = New DataSet
                dataAdapter.Fill(dataSet)
                'Application.DoEvents()
                DataGrid1.DataSource = dataSet.Tables(0)
                MsgBox("Record aggiunto:", MsgBoxStyle.Information, "+")
                txtgiorno.DataBindings.Clear()
                txtEntrata.DataBindings.Clear()
                txtUscita.DataBindings.Clear()
            Else
                MsgBox("Inserimento Annullato!", MsgBoxStyle.Exclamation, "Database")
                Exit Sub
            End If
            RadioButton2.Checked = False
        End Sub
    'mi creo la tabella ferie
    codice:
    Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
            ExecSql("CREATE TABLE ferie(Data nvarchar(20) PRIMARY KEY not null,Giorni nvarchar(20) not null,Altro nvarchar(30) not null,Rimanenza nvarchar(30) not null,Residuo nvarchar(30) not null)")
            DataGrid3.Refresh()
    
        End Sub

    adesso tento di inserire nella tabella ferie

    codice:
       Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged
    
            ExecSql("INSERT INTO ferie VALUES ('" & Me.txtData.Text & "','" & Me.txtnumero.Text & "','" & Me.CboAltro.Text & "','" & Me.txtResiduo.Text & "','" & Me.txtRimanenza.Text & "')")
            RadioButton1.Checked = False
            Dim cn1 As New SqlCeConnection("Data Source=" + db)
            Dim commandBuilder As SqlCeCommandBuilder
            dataAdapter = New SqlCeDataAdapter("Select * from ferie", cn1)
            commandBuilder = New SqlCeCommandBuilder(dataAdapter)
            dataSet = New DataSet
            dataAdapter.Fill(dataSet)
            DataGrid3.DataSource = dataSet.Tables(0) ' QUI OTTENGO L'ERRORE
    
    'There is a file sharing violation. A different process might be using the file. [,,,,,]
        End Sub
    Come gestisco le due tabelle?
    mi suggerite

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.