I have two table the 1st one is student table stdt(stdtid,stdname) 2nd [att] table{stdid,attdate,attcase}

i join two table and show them in datagridview ,the user will fill some data in columns belongs to att table

and click save btn

this is my code but it does not work i do not know why

Code:
a = Now.Date.ToString    
Dim sqlcom As String = "SELECT * FROM stdt LEFT JOIN (Select * from att Where att.attdate = #" & a & "#) as att ON stdt.stdid = att.stdtid "    
Dim cmdcom As New OleDbCommand(sqlcom, conn)    
da.SelectCommand = cmdcom    
Dim cmdBuildercom As New OleDbCommandBuilder(da)    
da.Fill(ds, "stdatt")    
Me.DataGridView2.DataSource = ds    
DataGridView2.DataMember = "stdatt"    
DataGridView2.AllowUserToAddRows = False    
For Each dra As DataRow In ds.Tables("stdatt").Rows    
dra(2) = dra(0)'to write stdid no from stdtable to att table    
dra(3) = a 'a is todaydate    
'    
Next    
  
Private Sub savebtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles savebtn.Click    
da.UpdateCommand = New OleDbCommand("UPDATE ATT SET [STDTID] = @stdtid, [ATTDATE] = @ATTDATE, stdcaseid = @stdcaseid WHERE STDTID = @STDTID", da.SelectCommand.Connection)    
da.UpdateCommand.Parameters.Add("@stdtid", OleDbType.BigInt, 32, "stdtid")    
da.UpdateCommand.Parameters.Add("@ATTDATE", OleDbType.Date, 32, "ATTDATE")    
da.UpdateCommand.Parameters.Add("@stdcaseid", OleDbType.BigInt, 1, "stdcaseid")    
  
  
  
  
  
da.InsertCommand = New OleDbCommand("INSERT INTO ATT ([STDTID], [ATTDATE], stdcaseid) VALUES(@STDTID, @ATTDATE, @stdcaseid)", da.SelectCommand.Connection)    
da.InsertCommand.Parameters.Add("@stdtid", OleDbType.WChar, 32, "stdtid")    
da.InsertCommand.Parameters.Add("@ATTDATE", OleDbType.date, 32, "ATTDATE")    
da.InsertCommand.Parameters.Add("@stdcaseid", OleDbType.BigInt, 1, "stdcaseid")    
da.Update(ds, "stdatt")    
End Sub