2017-10-24 4 views
0

Ich erstelle ein SQL Connection-Skript, das in Funktionen aufgeteilt ist, und ich würde gerne wissen, ob es möglich ist, eine SQL Connection-Methode von einer Funktion zurückzugeben. Ich habe bereits versucht und überschreiben Methode, aber ich denke nicht, dass es möglich ist, ist mein Code wie folgt.Zurückgeben einer SQLConnection.Open() - Methode aus einer Funktion

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 
      } 
     } 
    } 
} 

Vielen Dank im Voraus :)

+1

Sie möchten wahrscheinlich definieren, dass es eine 'SqlConnection' anstelle von' Objekt' zurückgibt, damit Sie deren Methoden und Eigenschaften verwenden können. Geben Sie 'null' zurück, wenn es fehlschlägt, und Anrufer können das Ergebnis testen ... oder einfach ** Verbindungen erstellen, öffnen, verwenden ** und entsorgen, wie Sie sie brauchen - Sie brauchen dafür wirklich keine Hilfsmethode. – Plutonix

+0

Es sieht so aus, als wäre die Methode .Open() leer, selbst wenn die Rückgabemethode geändert wird, tut das nichts. –

+0

Ihr Code benötigt das DBConnection-Objekt, also return * it * und nicht das Ergebnis einer DBConnection-Methode du fragst – Plutonix

Antwort

0

eine SQL-Verbindung zu erstellen, müssen Sie zuerst SQL Connection über VS Studio aufzubauen In VS2017 Sie View gehen in -> Server-Explorer. Darin sehen Sie "Datenverbindungen" mit der rechten Maustaste klicken und dann neue Verbindung hinzufügen: Klicken Sie auf die Verbindung testen. Wenn die Testverbindung zurückkehrt Okay, dann klicken Sie auf Voraus kopieren Sie Ihre Connection was in etwa so aussehen: Data Source=XBIRD;Initial Catalog=epos;Integrated Security=True

Dann in Ihrem Code benötigen Sie eine Connection auf diese Weise String conString = “Data Source=XBIRD;Initial Catalog=epos;Integrated Security=True” erstellen 1. eine Instanz des Objekts erstellen für Verbindungszeichenfolge SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conString"] .ConnectionString); Ab hier sollten Sie in der Lage sein, eine Verbindung zu Ihrer Datenbank herzustellen. Hinweis: Es gibt viele andere Möglichkeiten, mit denen Sie eine Verbindung zu Ihrer Datenbank herstellen können. Wenn Sie beispielsweise an ASP.NET arbeiten, müssen Sie die Verbindungszeichenfolge in der Datei Web.config hinzufügen und im obigen Code darauf verweisen. Zwischen [“ my connection string “]

Helfen Sie dies, bitte markieren Sie die Antwort, wenn es Ihnen geholfen hat.

Verwandte Themen