Функция завершается, когда вы возвращаете 1 или 0 (когда вы возвращаете что угодно , но 1 или 0 в в вашем случае);так что con.Close()
нельзя назвать.
В коде, который вы разместили, вы гарантированно вернетесь, так как у вас есть оператор возврата в обеих ветвях вашего оператора if.Если бы только одна ветвь имела оператор возврата, con.Close()
все равно можно было бы достичь.
Но вы все равно не должны использовать Close
таким образом - вы должны использовать using
операторы.
using (OleDbConnection con = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=d:\\sdb.mdb"))
using (OleDbCommand com = new OleDbCommand("select count(*) from sn where sn='" + insert + "\'", con))
{
con.Open();
int po = (int)com.ExecuteScalar();
if (po > 0)
return 1;
else
return 0;
// con.Close and con.Dispose will be called automatically at the end of the using block
}