2017-10-24 8 views
0

関数に分割されたSQL接続スクリプトを作成していますが、関数からSQL接続メソッドを返すことができるかどうかを知りたいと思います。私はすでにメソッドをオーバーライドしてオーバーライドしていますが、可能ではないと考えています。私のコードは次のとおりです。 >サーバーエクスプローラ - SQLの接続を作成するには、事前:)関数からSQLConnection.Open()メソッドを返します

+1

'Object'ではなく' SqlConnection'を返すように定義して、そのメソッドとプロパティを使うことができます。それが失敗し、呼び出し側が結果をテストできるときに 'null'を返すか、必要に応じて**を作成して開き、**接続を破棄します。本当にそのためのヘルパーメソッドは必要ありません。 – Plutonix

+0

戻り値のメソッドを変更しても何もしない場合は、.Open()メソッドが無効であるように見える –

+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” 第一のオブジェクトのインスタンスを作成します接続文字列SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conString"] .ConnectionString); ここから、データベースに接続できるはずです。 ポイントノートデータベースに接続できる他の多くの方法があります。つまり、ASP.NETで作業している場合は、Web.configファイルに接続文字列を追加し、上記のコードで参照する必要があります。間に[“ my connection string “]

ヘルプが役立つ場合は、回答にマークを付けてください。

関連する問題