Newsgroup: it.comp.lang.visual-basic
Titolo: [VB.NET] Insert e Update in un DataSet

Salve a tutti
ho importato in un DataSet il risultato di una Query e ora voglio
modificare questo DataSet in base al valore di un certo campo (se
supera una costante devo splittare quel record in 2 record)
Chi riesce ad aiutarmi :((

Ti ringrazio :)
da quanto ho capito però questo sistema funziona con un "UPDATE", con
un "INSERT" invece come devo fare????

 un "INSERT" invece come devo fare????
Io ho avuto dei problemi per le insert into sui datatable (a volte mi 
duplicava i record aggiunti), cosě mi sono scritto la classe InsertInto 
che si costruisce uno statement INSERT INTO dai campi che gli vengono 
forniti:
Es.
Dim ii As New InsertInto(myConnection)
ii.AddNew ' Clear old data
ii.Field("pippo")  = "paperino"
ii.Update ' costruisce e esegue l'INSERT INTO
Ciao
-- 
Math Parser : 
http://www.neodatatype.net
FlowChart   : 
http://www.neodatatype.net/dump/flowchart/dir.asp
Sito Comune : 
http://www.it-lang-vb.net

So che ti chiedo molto, ma mi potresti postare la classe InsertInto ?
Ciao
Denis


Però tu non usare il Microsoft.VisualBasic namespace ;)
E' leggermente diversa da quella che ho descritto nel post precedente.
Aggiustala tu come credi, in particolare per quanto riguarda il costruttore.
Ciao
Public Class SqlInsertInto
Dim strCTableName As String
Dim objCFields As Hashtable
Friend objCConn As SqlConnection
Protected Friend Sub New(ByVal tableName As String)
strCTableName = tableName
objCFields = New Hashtable
End Sub
Default Public WriteOnly Property Field(ByVal fieldName As String) As Object
Set(ByVal Value As Object)
If Not objCFields.Contains(fieldName.ToUpper) Then
objCFields.Add(fieldName.ToUpper, Value)
Else
objCFields.Item(fieldName.ToUpper) = Value
End If
End Set
End Property
Public Sub Execute()
Dim strLInsertInto As String
Dim strLValore As String
Dim objLType As System.Type
Try
strLInsertInto = "INSERT INTO " + strCTableName + " ("
For Each field As DictionaryEntry In objCFields
strLInsertInto += field.Key.ToString + ", "
Next
strLInsertInto = strLInsertInto.Substring(0, strLInsertInto.Length - 2)
strLInsertInto += ") VALUES ("
For Each value As DictionaryEntry In objCFields
If (value.Value Is Nothing) Then
strLValore = "NULL"
Else
objLType = value.Value.GetType
If objLType Is GetType(System.DateTime) Then
strLValore = "'" + SqlConvert.ToSqlString(Convert.ToDateTime(value.Value)) +
"'"
ElseIf objLType Is GetType(System.Boolean) Then
Dim b As Boolean = Convert.ToBoolean(value.Value)
If (b) Then
strLValore = "TRUE"
Else
strLValore = "FALSE"
End If
ElseIf objLType Is GetType(System.Double) OrElse _
objLType Is GetType(System.Decimal) OrElse _
objLType Is GetType(System.Single) Then
strLValore = SqlConvert.ToSqlString(Convert.ToDouble(value.Value))
ElseIf objLType Is GetType(System.String) Then
strLValore = "'" + value.Value.ToString.Replace("'", "''") + "'"
Else
strLValore = value.Value.ToString
End If
End If
strLInsertInto += strLValore + ", "
Next
strLInsertInto = strLInsertInto.Substring(0, strLInsertInto.Length - 2) +
")"
objCConn.Execute(strLInsertInto)
Catch ex As SqlException
Throw New ApplicationException(ex.Message)
Catch ex As Exception
Throw New ApplicationException(ex.Message)
End Try
End Sub
End Class
