This sounds like a coding error rather than concurrency, it would be nice if you could put the code you use to open the connection to the database, if you try to use the same connection to save the data at the same time it is likely that have the problem you mention, I recommend you implement a factory model on a singelton to prevent the problem:
public static class DataFactory
{
public static SqlConnection GetConexion(string connectionString)
{
var connection = new SqlConnection(connectionString);
connection.Open();
return connection;
}
}
And you implement it like this:
public class Repository
{
public void DataOperation()
{
//Con using aseguras que tu conexion se cierre una vez que termina tu metodo o funcion
using(var connection = DataFactory.GetConexion("tucadenadeconexion"))
{
/*Tu logica*/
}
}
}
I also recommend reading a bit about the differences between a static and non-static class.