2020年5月27日 星期三

[ODA.NET] C# Connect Oracle 9i

C# 要連接Oracle 有幾種方法
目前最推薦的就是利用 Oracle.ManagedDataAccess
但是此套件不支援舊版

所以要連接較舊版本的Oracle可以利用 
Oracle.DataAccess.dll


開發工具: Microsoft Visual Studio 2019
資料庫: Oracle9i

1.到Oracle 官網安裝 (以下有傳送門)

ODAC 11.2 Release 5 and Oracle Developer Tools for Visual Studio (11.2.0.3.20)

要注意版本,如果下載到新版(12.X)會不能用

照著精靈一步一步安裝

安裝完成到安裝的資料夾下
~\product\11.2.0\client_1\odp.net\bin\4 取出
Oracle.DataAccess.dll

再加入專案就完成了





























static void Main(string[] args)
   {
            string connstring =
  "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=xxxx))" +
  "(CONNECT_DATA=(SERVICE_NAME=xxxx)));User Id=xxxx;Password=xxxx;";

            using (OracleConnection conn = new OracleConnection(connstring))
            {
                conn.Open();
                string sql = "select * from xxxx where ROWNUM = 1";
                using (OracleCommand comm = new OracleCommand(sql, conn))
                {
                    using (OracleDataReader rdr = comm.ExecuteReader())
                    {
                        while (rdr.Read())
                        {
                            Console.WriteLine(rdr.GetString(0));
                        }
                    }
                }
            }
    }


參考:


C#連Oracle連線字串


Oracle 
ODAC with Oracle Developer Tools for Visual Studio

2019年11月29日 星期五

[C#] Lambda All() check ListA all in ListB

public static bool ContainsAll<T>(IEnumerable<T> source, IEnumerable<T> values)
{
    return values.All(value => source.Contains(value));
}

2019年11月26日 星期二

新增 net core project


$ dotnet new web -o <專案名稱>
dotnet help 可以查看專案型態的參數
安裝npm $ npm install 檢查npm安裝版本
$ npm -v

init npm
$npm init
如果沒有要設定專案資訊 直接Enter到底
結束之後 會再package.json寫入設定

npm安裝套件 ex jquery
$ npm install jquery

安裝LibMan
$ dotnet tool install -g Microsoft.Web.LibraryManager.Cli

Run
$ dotnet run


Ref microsoft microsoft-SingleR install

2019年11月24日 星期日

.Net Core Console使用依賴注入

public static async Task Main(string[] args)
{

     // 取得設定檔
      IConfiguration config = new ConfigurationBuilder()
                             .AddJsonFile("appsettings.json", true, true)
                             .Build();
    // 建立容器
    var serviceCollection = new ServiceCollection();

    // 註冊服務
    serviceCollection.AddTransient();
    serviceCollection.AddTransient();

    // 加入SqlServer 連線字串
    serviceCollection.AddDbContext(options => options.UseSqlServer(config["ConnectionStrings:DefaultConnection"]));

    // 建立依賴服務提供者
    var serviceProvider = serviceCollection.BuildServiceProvider();

    // 執行
    await serviceProvider.GetRequiredService().Run();
}

C# 比較字串不分大小寫

除了把字串ToUpper() 或 ToLower() 以外

還可以用 String.Compare()
//最後一個參數改成true 就可以忽略大小寫
String.Compare(strSource, strTarget, true) 
回傳為0 即相等


而另外一種我最常用來做搜尋的方法是Contains()

sourceString.Contains("Search-Word", StringComparison.InvariantCultureIgnoreCase, 
new System.Globalization.CultureInfo("en-US")));