il problema era che con C# non posso fare il casting tra stringhe e interi, come invece facevo con VB.

ho risolto così:

string stringID = Request.QueryString["id"];

OleDbParameter par = new OleDbParameter();
par = cmd.Parameters.Add("@ID",OleDbType.Integer);
par.Direction = ParameterDirection.Input;
par.Value= stringID;


grazie