[SQL] SQL / C 번호 - 쿼리를 실행하기위한 최선의 방법
SQLSQL / C 번호 - 쿼리를 실행하기위한 최선의 방법
나는 C # 클래스 내에서 SQL 쿼리를 실행해야합니다. 나는이 옵션의 생각
내 질문은 더 나은 방법이 될 것이다입니까? 이 솔루션은 짧은 시간 동안 서버에 대한 연결을 유지하는 것이 중요합니다.
위에서 잘하지 않으면 나는 다른 아이디어에 열려있어.
미리 감사드립니다.
해결법
-
==============================
1.하는 SqlCommand를 사용합니다. (당신의 쿼리 성능이 좋은만큼 긴)이 코드는 시간이 매우 짧은 기간 동안 살아 연결을 유지합니다 :
하는 SqlCommand를 사용합니다. (당신의 쿼리 성능이 좋은만큼 긴)이 코드는 시간이 매우 짧은 기간 동안 살아 연결을 유지합니다 :
DataTable results = new DataTable(); using(SqlConnection conn = new SqlConnection(connString)) using(SqlCommand command = new SqlCommand(query, conn)) using (SqlDataAdapter dataAdapter = new SqlDataAdapter(command)) dataAdapter.Fill(results);
-
==============================
2.MSDN에서 :
MSDN에서 :
다음의 예는도록 SqlConnection하는하는 SqlCommand 및 SqlDataReader 개체를 만듭니다. 예는 콘솔에 기록 데이터를 통해 판독한다. 그것은 사용하여 코드 블록을 종료 마지막으로,이 예제는 SqlDataReader 개체 다음도록 SqlConnection을 닫습니다.
private static void ReadOrderData(string connectionString) { string queryString = "SELECT OrderID, CustomerID FROM dbo.Orders;"; using (SqlConnection connection = new SqlConnection( connectionString)) { SqlCommand command = new SqlCommand( queryString, connection); connection.Open(); SqlDataReader reader = command.ExecuteReader(); try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); } } finally { // Always call Close when done reading. reader.Close(); } } }
-
==============================
3.때에 따라 다르지. 당신은 사용이 확인 될 수 SQLCMD 프로세스를 분기 쿼리의 결과에 대해 걱정하지 마십시오. 반면에 경우에 당신은 더 나은 사용 ADO.NET하는 것입니다 결과를 제어 할 필요가있다. 연결 문자열에 풀링 = 거짓을 추가하여 오랜 시간이 있는지 확인 비활성화 ADO.NET 연결 풀링에 대한 연결 개방을 유지 피하기 위해 :
때에 따라 다르지. 당신은 사용이 확인 될 수 SQLCMD 프로세스를 분기 쿼리의 결과에 대해 걱정하지 마십시오. 반면에 경우에 당신은 더 나은 사용 ADO.NET하는 것입니다 결과를 제어 할 필요가있다. 연결 문자열에 풀링 = 거짓을 추가하여 오랜 시간이 있는지 확인 비활성화 ADO.NET 연결 풀링에 대한 연결 개방을 유지 피하기 위해 :
using (var conn = new SqlConnection("Data Source=server;Initial Catalog=somedb;User Id=foo;Password=secret;Pooling=false")) using (var cmd = conn.CreateCommand()) { conn.Open(); cmd.CommandText = "DELETE FROM foo"; var result = cmd.ExecuteNonQuery(); }
-
==============================
4.난 당신이 다른 프로세스를 연결할 필요가 없기 때문에하는 SqlCommand가 분명한 승자라고 생각합니다. 당신이 그것으로 완료대로 즉시 데이터베이스 연결을 닫을 수 있습니다.
난 당신이 다른 프로세스를 연결할 필요가 없기 때문에하는 SqlCommand가 분명한 승자라고 생각합니다. 당신이 그것으로 완료대로 즉시 데이터베이스 연결을 닫을 수 있습니다.
그리고 당신은 또한 SQLCMD 사용할 수없는 시스템에 응용 프로그램을 배포 할 수 있습니다.
-
==============================
5.나는 SQL 서버에 연결할 때이 클래스에만 사용할 수 있습니다 SqlCommand를 좋은 아이디어라고 생각하지만, 명심하십시오. 당신은 당신이 오라클을 처리하는 경우 명령 / 연결 클래스의 다른 유형 또는 다른 데이터베이스에은 OleDb 연결이 필요합니다. 내가 그에 읽을 것이다 있도록 데이터 명령 모두는 DbCommand에서 상속 객체.
나는 SQL 서버에 연결할 때이 클래스에만 사용할 수 있습니다 SqlCommand를 좋은 아이디어라고 생각하지만, 명심하십시오. 당신은 당신이 오라클을 처리하는 경우 명령 / 연결 클래스의 다른 유형 또는 다른 데이터베이스에은 OleDb 연결이 필요합니다. 내가 그에 읽을 것이다 있도록 데이터 명령 모두는 DbCommand에서 상속 객체.
from https://stackoverflow.com/questions/3735531/sql-c-best-method-for-executing-a-query by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] SQL. SP에 또는 함수는 금요일의 다음 날짜를 계산한다 (0) | 2020.05.29 |
---|---|
[SQL] SQL에서 부울 값을 설정하는 방법 (0) | 2020.05.29 |
[SQL] 대량로드 할 수 없습니다. 파일 "C : \ data.txt로"존재하지 않는 (0) | 2020.05.29 |
[SQL] 날짜와 SQL 삽입 문을 루핑 (0) | 2020.05.29 |
[SQL] 테이블에 레코드를 삽입 할 때 작은 따옴표로 문자열 필드는 오류의 원인이 (0) | 2020.05.29 |