Worked it out for myself. This works under Visual Studio 2010 its VB.net not c#
Just change the stored procedure name and parameter names.
I've trawled dozens and dozens of forums with people giving bad, and incomplete examples, even mircorosft can't be arsed to give a complete example in VB.net , but this DOES WORK
ODBC call to stored procedures with 3 paratmetres
Imports System.Data
Imports System.Data.Odbc
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim cn As New OdbcConnection
Dim cmd As New OdbcCommand
Dim prm As New OdbcParameter
'Dim dr As New OdbcDataReader
Try
cn = New OdbcConnection("Dsn=carparts;uid=me;trusted_connection=Yes; wsid=DOWNSTAIRS;database=carparts")
cmd = New OdbcCommand("{? = call testinsert (?, ?,?)}", cn)
prm = cmd.Parameters.Add("@RETURN_VALUE", OdbcType.Int)
prm.Direction = ParameterDirection.ReturnValue
prm = cmd.Parameters.Add("@partcode", OdbcType.Char, 5)
prm.Value = "abc1"
prm = cmd.Parameters.Add("@partdesc", OdbcType.Char, 5)
prm.Value = "def2"
prm = cmd.Parameters.Add("@partdesc", OdbcType.SmallInt)
prm.Value = 4
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Class