A ver, yendo por partes... Has depurado paso a paso? Cuál es la linea que te da ese error? El ExecuteNonQuery? O cual?
Y luego, veo algo raro, esto:
Código:
SqldaEmp.SelectCommand.ExecuteNonQuery()
SqldaEmp.Fill(dsEmp, "EMPRESA")
El Procedimiento parece ser que devuelve un conjunto de filas... Entonces, ExecuteNonQuery para que? Este se usa cuando el resultado del procedimiento no devuelve nada, pero en tu caso tiene toda la pinta que devuelve un conjunto de registros. O quizá se me escapa algo, que en tal caso agradeceria una explicación.