Oracle_C#連接Oracle數據庫


1、確保已安裝Oracle客戶端,已創建數據庫

2、在項目中安裝Oracle.ManagedDataAccess Nuget包

在vs中工具——Nuget包管理器——管理解決方案的Nuget程序包——搜索安裝即可(確保聯網)

image-20200420085119829

3、添加引用using Oracle.ManagedDataAccess.Client;

4、創建查詢方法

確定連接字符串:

Data Source:數據源

可在Oracle安裝目錄 C:\app\Admin\product\11.2.0\dbhome\NETWORK\ADMIN下tnsnames.ora中找到,記事本打開如下:

# tnsnames.ora Network Configuration File: C:\app\Admin\product\11.2.0\dbhome\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

連接字符串Data Source為最后一部分

  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

User Id:用戶名

Password:安裝時設置的口令(密碼)

public DataTable ExportDataTable(string tableName, string selectStr)
        {
            DataTable dt = new DataTable();
            if (selectStr == "" || selectStr == null)
            {
                selectStr = "1=1";
            }
            try
            {
                using (OracleConnection con = new OracleConnection("Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)));User Id=system;Password=147258"))
                {
                    con.Open();
                    string cmdStr = $"select * from {tableName} where {selectStr}";
                    OracleCommand command = new OracleCommand(cmdStr, con);
                    OracleDataAdapter adapter = new OracleDataAdapter(command);
                    adapter.Fill(dt);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return dt;
        }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM