2017-10-24 3 views
0

함수로 분리 된 SQL 연결 스크립트를 만들고 함수에서 SQL 연결 메서드를 반환 할 수 있는지 알고 싶습니다. 나는 이미 시도하고 메소드를 오버라이드했다. 그러나 그것이 가능하다고 생각하지 않는다. 나의 코드는 다음과 같다. > 서버 탐색기 -는 SQL 연결을 만들려면 사전 :함수에서 SQLConnection.Open() 메서드를 반환하십시오.

+1

'Object'가 아니라'SqlConnection'을 반환하도록 정의하여 메서드와 속성을 사용할 수 있습니다. 실패하고 호출자가 결과를 테스트 할 수있을 때 null을 반환하거나 필요에 따라 ** 열기, 연결 **을 사용하여 연결을 삭제할 수 있습니다.이 경우 도우미 메서드가 필요 없습니다. – Plutonix

+0

.Open() 메서드가 void 인 것처럼 보입니다. 반환 메서드를 변경해도 아무 것도 수행되지 않습니다. –

+0

코드에 DBConnection 개체가 필요하므로 DBConnection 메서드의 결과가 아닌 * it *를 반환합니다. 너는 묻고있다. – Plutonix

답변

0

에서

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using System.Web; 
using System.Data; 
using System.Data.SqlClient; 

namespace SHCWebsite.App_Code 
{ 
    public class DBConnection 
    { 
     public static Dictionary<int,Dictionary<string, string>> DBQuery(string tableName, string SQLColQuery, string SQLSpecialReq, string WRAccess, string dbName) 
     { 
      // create all the needed variables 
      var results = ""; 
      Dictionary<int, Dictionary<string, string>> result = new Dictionary<int, Dictionary<string, string>>; 

      // create a new object called dbConn, init the connection 
      object dbConn = InitDBConnection(dbName, WRAccess); 

      // return results 
      return result; 
     } 

     protected static object InitDBConnection(string dbName, string WRAccess) 
     { 
      // setup the database connection 
      SqlConnection dbConn = new SqlConnection(
       "Data Source=(localdb)\\MSSQLLocalDB;"+ 
       "database="+dbName+";"+ 
       "Integrated Security=True;"+ 
       "Connect Timeout=30;"+ 
       "Encrypt=False;"+ 
       "TrustServerCertificate=True;"+ 
       "ApplicationIntent="+WRAccess+";"+ 
       "MultiSubnetFailover=False;" 
       ); 

      try 
      { 
       return dbConn.Open(); <-- THIS LINE REPORTING "CANNOT IMPLICITLY CONVERT 'VOID' TO 'OBJECT' 
      } catch (Exception error) 
      { 
       // RETURN ERROR 
      } 
     } 
    } 
} 

감사합니다, 당신은 먼저보기로 이동 VS2017에서 VS 스튜디오를 통해 SQL를 ConnectionString을 설정해야합니다. 이 내에서 "데이터 연결"을 마우스 오른쪽 단추로 클릭 한 다음 새 연결을 추가하십시오. 테스트 연결을 클릭하십시오. 연결 테스트 후 좋아 반환하는 경우, 다음과 유사 할 당신의 ConnectionString을 복사 사전에 클릭 이 Data Source=XBIRD;Initial Catalog=epos;Integrated Security=True

그런 다음 코드에서,이 방법으로 ConnectionString을을 만들 필요가 String conString = “Data Source=XBIRD;Initial Catalog=epos;Integrated Security=True” 1에 대한 개체의 인스턴스를 생성 연결 문자열 SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conString"] .ConnectionString); 앞으로는 데이터베이스에 연결할 수 있어야합니다. 포인트 노트 데이터베이스에 연결할 수있는 다른 많은 방법이 있습니다. 즉, ASP.NET에서 작업하는 경우 Web.config 파일에 연결 문자열을 추가하고 위 코드에서 참조해야합니다. 중간에 [“ my connection string “]

도와주세요. 도움이 되었다면 답을 표시하십시오.

관련 문제