Вы также можете использовать этот код с некоторыми предосторожностями.
try
{
String stringValue = "1234";
// From String to Integer
int integerValue = Integer.valueOf(stringValue);
// Or
int integerValue = Integer.ParseInt(stringValue);
// Now from integer to back into string
stringValue = String.valueOf(integerValue);
}
catch (NumberFormatException ex) {
//JOptionPane.showMessageDialog(frame, "Invalid input string!");
System.out.println("Invalid input string!");
return;
}
catch (NumberFormatException ex) {
integerValue = 0;
}
Использование строковой константы для сравнения или любого рода вычислений всегда является хорошей идеей, поскольку константа никогда не возвращает нулевое значение.
Вероятно, в блок try
, который вы не обрабатываете, генерируется исключение. См. Это примечание в MSDN для try-finally :
В рамках обработанного исключения гарантированный запуск завершенного блока. Однако, если исключение не обрабатывается, выполнение блока finally зависит от того, как запускается операция исключения.
blockquote>В любом случае я рекомендовал бы обертывать соединение в блоке
using
:using (SqlConnection connection = new SqlConnection(connectionString)) { //etc... }
В качестве альтернативы добавьте блок catch к
try-finally
:conn.Open(); try { } catch { } finally { conn.Close(); }
вы должны закрыть соединения, как только закончите работу. Попробуйте открыть соединения в кратчайшие сроки. Однако лучше использовать его, чтобы вызвать метод Dispose даже в случае исключений.
using (SqlConnection conn= new SqlConnection(conStr))
{
//etc...
}
ИЛИ
1) Откройте соединение
2) Доступ к базе данных
3) Закройте соединение
//conn.Open();
try
{
conn.Open();
//Your Code
}
finally
{
conn.Close();
conn.Dispose();//Do not call this if you want to reuse the connection
}