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 :)
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
Es sieht so aus, als wäre die Methode .Open() leer, selbst wenn die Rückgabemethode geändert wird, tut das nichts. –
Ihr Code benötigt das DBConnection-Objekt, also return * it * und nicht das Ergebnis einer DBConnection-Methode du fragst – Plutonix