1

だから私は今本当にイライラしています。

私の質問はどうですか?

私はどこでも検索しましたが、はい、例を取得していますが、それらをよりよく説明してくれる人が必要ですか? そして多分いくつかのサンプルコードも。

接続文字列のクラスを作成し、その接続文字列を使用して proc を呼び出す必要があることはわかっています。私は正しいですか?

これは私のコードです:

using System;
using System.Collections.Generic;
using System.Text;
using CoreLab.Oracle;

namespace WMS
{
    class Common
    {
        static void connect()
        {
            // Connect
            string constr = "User ID=Password;" +
            "Password=Username;" +
            "Host="ServerName";" +
            "Pooling=true;" +
            "Min Pool Size=0;" +
            "Max Pool Size=100;" +
            "Connection Lifetime=0";
            OracleConnection con = new OracleConnection(constr);
            con.Open();
     }
}

助けてください!?


以下は、サンプルコードで行ったことです。

namespace WMS
{
class Common
{
    public static string ConnectionString
    {
        get
        {
            return ConnectionString;
        }
        set
        {
            ConnectionString = "User ID=username;" +
            "Password=password;" +
            "Host=hostname;" +
            "Pooling=true;" +
            "Min Pool Size=0;" +
            "Max Pool Size=100;" +
            "Connection Lifetime=0";
        }
    }

    public static OracleConnection OpenConnection()
    {
        OracleConnection con = new OracleConnection(ConnectionString);
        con.Open();
        return con;
    }
 }
} 

これは機能しますか?

そして、フォームからどのようにアクセスしますか? これとともに:

<using(var conn = Common.OpenConnection()) {
 // use it
}
4

1 に答える 1

4

constrこの例のメソッドconスコープが設定されています。それ以外でも利用できるようにしたい場合は、フィールドに何かを保存する必要があります。たとえば、次のようなものかもしれません。

class Common
{
    private string connectionString;
    public static string ConnectionString {
        get { return connectionString; }
        set { connectionString = value; }
    }
    public static DbConnection OpenConnection()
    {
        OracleConnection con = new OracleConnection(ConnectionString);
        con.Open();
        return con;
    }
}

そのため、アプリケーションの早い段階で接続文字列を構成します。

Common.ConnectionString = ... // TODO

そして、データアクセスが必要な場合:

using(var conn = Common.OpenConnection()) {
     // use it
}

staticまた、状態が常に最善の方法であるとは限らないことにも注意してください。それは機能しますが、後で選択肢が少なくなります。

于 2012-11-15T08:13:45.460 に答える