# Problem in database updation through Adapter in VB.Net

**URL:** <https://www.ruby-forum.com/t/problem-in-database-updation-through-adapter-in-vb-net/76582>\
**Category:** Ruby\
**Created:** [March 4, 2006, 8:55am UTC](https://www.ruby-forum.com/t/problem-in-database-updation-through-adapter-in-vb-net/76582 "2006-03-04T08:55:56Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![r2destini](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/6de8d8/32.png) [@r2destini](https://www.ruby-forum.com/u/r2destini)\
**Post date:** [March 4, 2006, 8:55am UTC](https://www.ruby-forum.com/t/problem-in-database-updation-through-adapter-in-vb-net/76582/1 "2006-03-04T08:55:56Z")

</div>

Hi Friends,

I am new to .Net. So I don’t know much.

I am facing a problem in updating database through [ADO.Net](http://ADO.Net)

I am creating the dataset and there is no problem in the updation and  
deletion or insertion in the dataset but when I am updating the  
database through adaptor error occures (Coloured Red).

For ref the code follows:

Code:

Imports System.Data.OleDb  
Module Module1  
Private Const s As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data  
Source=D:\Rabi\Database\DBTest-1.mdb;Persist Security Info=False”  
Public Con As OleDb.OleDbConnection  
Public adopt As OleDb.OleDbDataAdapter  
Public ds As DataSet  
Public sql As String

Dim cmdDel As New OleDb.OleDbCommand, sDelSql As String  
Dim cmdIns As New OleDb.OleDbCommand, sInsSql As String  
Dim cmdUpd As New OleDb.OleDbCommand, sUpdSql As String  
Dim Param As New OleDb.OleDbParameter

Public Sub Display(ByRef Table As DataTable)  
Dim row As DataRow  
Dim col As DataColumn  
Dim i, j As Integer

```
   For i = 0 To Table.Rows.Count - 1
       row = Table.Rows(i)
       Select Case row.RowState
           Case DataRowState.Deleted
               Console.WriteLine("[Deleted]")
           Case DataRowState.Modified
               Console.WriteLine("[Modified]")
           Case DataRowState.Added
               Console.WriteLine("[Added]")
           Case DataRowState.Unchanged
               Console.WriteLine("[Unchanged]")
       End Select
       For j = 0 To Table.Columns.Count - 1
           If row.RowState <> DataRowState.Deleted Then
               Console.WriteLine("{0}", row.Item(j))
           End If
       Next
       Console.WriteLine()
   Next

```

End Sub  
Public Sub Main()  
Try  
Con = New OleDb.OleDbConnection(s)  
sql = “Select \* from Artist”  
adopt = New OleDbDataAdapter(sql, Con)  
ds = New DataSet  
Catch ex As Exception  
Console.WriteLine(ex.ToString)  
Console.ReadLine()  
End Try

```
   sDelSql = "Delete From Artist Where Id = ?"
   cmdDel.Connection = Con
   cmdDel.CommandText = sDelSql
   Param = cmdDel.Parameters.Add("Id", OleDb.OleDbType.Integer)
   Param.SourceColumn = "@ID"
   Param.SourceVersion = DataRowVersion.Original
   adopt.DeleteCommand = cmdDel

   sUpdSql = "Update Artist Set Name = ? Where Id = ?"
   cmdUpd.Connection = Con
   cmdUpd.CommandText = sUpdSql
   Param = cmdUpd.Parameters.Add("Name", OleDb.OleDbType.Char)
   Param.SourceColumn = "@Name"
   Param.SourceVersion = DataRowVersion.Current
   Param = cmdUpd.Parameters.Add("Id", OleDb.OleDbType.Integer)
   Param.SourceColumn = "@Id"
   Param.SourceVersion = DataRowVersion.Original
   adopt.UpdateCommand = cmdUpd

   sInsSql = "Insert Into Artist (Id,Name) Values(?,?)"
   cmdIns.Connection = Con
   cmdIns.CommandText = sInsSql
   Param = cmdIns.Parameters.Add("Id", OleDb.OleDbType.Integer)
   Param.SourceColumn = "@Id"
   Param.SourceVersion = DataRowVersion.Current
   Param = cmdIns.Parameters.Add("Name", OleDb.OleDbType.Char)
   Param.SourceColumn = "@Name"
   Param.SourceVersion = DataRowVersion.Current
   adopt.UpdateCommand = cmdIns

   Try
       Con.Open()
       If Con.State = ConnectionState.Open Then
           adopt.MissingSchemaAction =

```

MissingSchemaAction.AddWithKey  
adopt.Fill(ds, “Artist”)  
Con.Close()

```
           Dim Tables As DataTableCollection
           Dim Table As DataTable
           Dim Cols As DataColumnCollection
           Dim Col As DataColumn
           Dim Rows As DataRowCollection
           Dim Row As DataRow

           Tables = ds.Tables
           Table = Tables("Artist")
           Rows = Table.Rows
           Cols = Table.Columns

           Console.WriteLine("Original Table Looks Like")
           Display(Table)
           Console.ReadLine()

           Console.WriteLine("Id 1 delete")
           Rows.Find(1).Delete()
           Console.WriteLine("deleted")
           Display(Table)
           Console.ReadLine()

           Console.WriteLine("Id 2 Modify")
           Row = Rows.Find(2)
           Row.BeginEdit()
           Row("Name") = "Mantu"
           Row.EndEdit()
           Console.WriteLine("Updated")
           Display(Table)
           Console.ReadLine()

           Console.WriteLine("Id 1 Add")
           Row = Table.NewRow
           Row("Id") = 4
           Row("Name") = "Deepak"
           Rows.Add(Row)
           Console.WriteLine("Added")
           Display(Table)
           Console.ReadLine()

           Con.Open()
           adopt.Update(ds, "Artist")
           Console.WriteLine("Done")

       End If
   Catch ex As Exception
       Console.WriteLine(ex.ToString)
       Console.ReadLine()
   End Try

```

End Sub  
End Module

The Exact error what I got is :

“System.Data.OleDb.OleDbException: Parameter ?\_1 has no default value.  
at System.Data.Common.DbDataAdapter.Update(DataRow[] dataRows,  
DataTableMapping tableMapping)  
at System.Data.Common.DbDataAdapter.Update(DataSet dataSet, String  
srcTable)  
at ADONetTest.Module1.Main() in  
D:\Rabi\DotNetPrac\ADONetTest\ADONetTest\Module1.vb:line 176”

This String is generated by “Ex.ToString”
