[SQL] 문, SQL 및도록 SqlConnection을 사용하는 C #을
SQL문, SQL 및도록 SqlConnection을 사용하는 C #을
이것은 using 문 C # SQL을 사용하여 수 있습니까?
private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}
연결을 여는 동안 오류가 무엇이 있다면?
using 문은 마지막으로 시도하고있다 어떤 캐치하지
그래서 나는 캐치 캐치 것 연결 여는 동안 오류가 발생하여 괄호 밖에서 잡으면?
그렇지 않다면, 어떻게이 위에 표시된 사용하여 문을 사용하여이를 구현하는 방법?
해결법
-
==============================
1.그것은 C #으로 그렇게하는 것이 가능하다 (나는 또한 그 코드가 정확히 MSDN http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx을에 표시됩니다 참조). 당신이 방어 및 프로덕션 환경에서 문제 해결을 도움이 될 잠재적 인 예외를 기록, 예를 들어 일해야하는 경우, 당신은이 방법을 수행 할 수 있습니다
그것은 C #으로 그렇게하는 것이 가능하다 (나는 또한 그 코드가 정확히 MSDN http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx을에 표시됩니다 참조). 당신이 방어 및 프로덕션 환경에서 문제 해결을 도움이 될 잠재적 인 예외를 기록, 예를 들어 일해야하는 경우, 당신은이 방법을 수행 할 수 있습니다
private static void CreateCommand(string queryString, string connectionString) { using (SqlConnection connection = new SqlConnection( connectionString)) { try { SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); command.ExecuteNonQuery(); } catch (InvalidOperationException) { //log and/or rethrow or ignore } catch (SqlException) { //log and/or rethrow or ignore } catch (ArgumentException) { //log and/or rethrow or ignore } } }
-
==============================
2.당신이있는 오류를 포착하려는 경우에 당신은 시도에 모든 것을 포장해야합니다 - catch 블록을. 블록을 사용하여 간단하게 관리되지 않는 리소스를 배치 것을, 그들은 예외를 처리 할 수 있도록.
당신이있는 오류를 포착하려는 경우에 당신은 시도에 모든 것을 포장해야합니다 - catch 블록을. 블록을 사용하여 간단하게 관리되지 않는 리소스를 배치 것을, 그들은 예외를 처리 할 수 있도록.
또한, SqlCommand를 구현으로 IDisposable, 그래서 내가 사용하는 블록에 있음을 넣어 제안뿐만 아니라 것입니다.
-
==============================
3.다만 명시 적으로 쓰는 :
다만 명시 적으로 쓰는 :
SqlConnection connection = new SqlConnection(connectionString); try { using (SqlCommand command = new SqlCommand(queryString, connection)) { command.Connection.Open(); command.ExecuteNonQuery(); } } catch (Exception e) { // ...handle, rethrow. Also, you might want to catch // more specific exceptions... } finally { connection.Close(); }
-
==============================
4.예, 당신은 try 블록에서 사용하는 블록을 넣을 수 있습니다, 다음과 같은 캐치 try 블록에 관련된 오류를 잡을 것입니다.
예, 당신은 try 블록에서 사용하는 블록을 넣을 수 있습니다, 다음과 같은 캐치 try 블록에 관련된 오류를 잡을 것입니다.
-
==============================
5.필드에 대한 데이터베이스에 고유 인덱스를 추가하고 오류를 잡을 수있어.
필드에 대한 데이터베이스에 고유 인덱스를 추가하고 오류를 잡을 수있어.
각 행에 대해 SQL 연결을 reinstantiate하지 마십시오. 열기 및 연결을 닫으면 리소스를 많이 사용합니다. 이 같은 시도 :
protected void btn_insert_Click(object sender, EventArgs e) { string connStr = "your connection string"; SqlCommand cmd; using (SqlConnection con = new SqlConnection(connStr)) { con.Open(); foreach (GridViewRow g1 in GridView1.Rows) { try { cmd = new SqlCommand("command text", con); cmd.ExecuteNonQuery(); } catch (SqlException sqlEx) { //Ignore the relevant Sql exception for violating a sql unique index } } } }
from https://stackoverflow.com/questions/3079098/the-c-sharp-using-statement-sql-and-sqlconnection by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 오라클에 연결되어 SQL 서버에서 SQL 쿼리를 작성할 때 어떻게 날짜 리터럴을 지정합니까? (0) | 2020.05.27 |
---|---|
[SQL] 나는 물음표를 포함 PostgreSQL을 JSON (B) 연산자를 어떻게 사용합니까? "" 를 통해 JDBC (0) | 2020.05.27 |
[SQL] bind_param은 무엇을 수행합니까? (0) | 2020.05.26 |
[SQL] 무엇 외래 키 불일치 오류를 일으키는? (0) | 2020.05.26 |
[SQL] 항상합니까 '선택'프라이 머리 키를 기준으로 순서? (0) | 2020.05.26 |