As the error says, somewhere before the code you posted you have executed a datareader using the same command and the datareader is still open.
If you place a breakpoint on the line
strFieldContents = strFieldContents.Replace("'", "")
in
setField
you can check
_dbCmd.CommandText
using the debugger. This would show you what statement is executed previously so that you can find the correct place where the
datareader
isn't closed.
One thing is that you use the same command for different purposes and store the command most likely in the form's variables. I would suggest that you create a new command each time you need to execute a statement, because I don't think there's any benefit of storing the command especially if the commandtext doesn't stay the same between executions.