具體的代碼如下:
創(chuàng)新互聯(lián)主營神農(nóng)架林區(qū)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶APP開發(fā)公司,神農(nóng)架林區(qū)h5小程序定制開發(fā)搭建,神農(nóng)架林區(qū)網(wǎng)站營銷推廣歡迎神農(nóng)架林區(qū)等地區(qū)企業(yè)咨詢
/// summary
/// Oracle 的數(shù)據(jù)庫連接字符串.
/// /summary
private const String connString =
@"Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.210)
(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));User
Id=TEST;Password=TEST123";
192.168.1.210 是 Oracle?數(shù)據(jù)庫服務(wù)器的 IP 地址
1521 是 默認(rèn)的端口號
SERVICE_NAME=ORCL 意思是Oracle 數(shù)據(jù)庫服務(wù)是ORCL
后面就是用戶名密碼了。
擴(kuò)展資料:
部分描述:
abstract:可以和類、方法、屬性、索引器及事件一起使用,標(biāo)識一個可以擴(kuò)展但不能被實(shí)體化的、必須被實(shí)現(xiàn)的類或方法。
as:一個轉(zhuǎn)換操作符,如果轉(zhuǎn)換失敗,就返回null。
base:用于訪問被派生類或構(gòu)造中的同名成員隱藏的基類成員。
catch:定義一個代碼塊,在特定類型異常拋出時,執(zhí)行塊內(nèi)代碼。
checked:既是操作符又是語句,確保編譯器運(yùn)行時,檢查整數(shù)類型操作或轉(zhuǎn)換時出現(xiàn)的溢出。
const:標(biāo)識一個可在編譯時計算出來的變量值,即一經(jīng)指派不可修改的值。
delegate:指定一個聲明為一種委托類型。委托把方法封裝為可調(diào)用實(shí)體,能在委托實(shí)體中調(diào)用。
enum:表示一個已命名常量群集的值類型。
event:允許一個類或?qū)ο筇峁┩ㄖ某蓡T,他必須是委托類型。
explicit:一個定義用戶自定義轉(zhuǎn)換操作符的操作符,通常用來將內(nèi)建類型轉(zhuǎn)換為用戶定義類型或反向操作,必須再轉(zhuǎn)換時調(diào)用顯示轉(zhuǎn)換操作符。
extern:標(biāo)識一個將在外部(通常不是c#語言)實(shí)現(xiàn)的方法。
參考資料來源:百度百科-c#
變量直接寫,要連接字符串的話,用 ?|| ?這個符號,后面的字符串用單引號引。
變量 V_str ? ?字符串' select ?emp from table where '
連接后為:' select ?emp from table where ' ?|| V_str
url=jdbc\:oracle\:thin\:@localhost\:1521\:SYSDBA
感覺上面這個有點(diǎn)問題呢,你的數(shù)據(jù)庫是sysdba嗎?比較標(biāo)準(zhǔn)的格式是
jdbc:oracle:thin:@//localhost:1521/[數(shù)據(jù)庫的服務(wù)名]
name=SYS
password=admin
這兩個也有問題,sys是系統(tǒng)管理帳號,你的軟件帳號是用sys嗎?
connection as SYS should be as SYSDBA or SYSOPER! 提示這個的原因是你使用了sys帳號的原因.換你系統(tǒng)應(yīng)該使用的帳號和密碼就不會出現(xiàn)這樣的問題了
public void testOracle()
{
Connection con = null;// 創(chuàng)建一個數(shù)據(jù)庫連接
PreparedStatement pre = null;// 創(chuàng)建預(yù)編譯語句對象,一般都是用這個而不用Statement
ResultSet result = null;// 創(chuàng)建一個結(jié)果集對象
try
{
? ?Class.forName("oracle.jdbc.driver.OracleDriver");// 加載Oracle驅(qū)動程序
? ?System.out.println("開始嘗試連接數(shù)據(jù)庫!");
? ?String url = "jdbc:oracle:" + "thin:@127.0.0.1:1521:XE";// 127.0.0.1是本機(jī)地址,XE是精簡版Oracle的默認(rèn)數(shù)據(jù)庫名
? ?String user = "system";// 用戶名,系統(tǒng)默認(rèn)的賬戶名
? ?String password = "147";// 你安裝時選設(shè)置的密碼
? ?con = DriverManager.getConnection(url, user, password);// 獲取連接
? ?System.out.println("連接成功!");
? ?String sql = "select * from student where name=?";// 預(yù)編譯語句,“?”代表參數(shù)
? ?pre = con.prepareStatement(sql);// 實(shí)例化預(yù)編譯語句
? ?pre.setString(1, "劉顯安");// 設(shè)置參數(shù),前面的1表示參數(shù)的索引,而不是表中列名的索引
? ?result = pre.executeQuery();// 執(zhí)行查詢,注意括號中不需要再加參數(shù)
? ?while (result.next())
? ? ? ?// 當(dāng)結(jié)果集不為空時
? ? ? ?System.out.println("學(xué)號:" + result.getInt("id") + "姓名:"
? ? ? ? ? ? ? ?+ result.getString("name"));
}
catch (Exception e)
{
? ?e.printStackTrace();
}
finally
{
? ?try
? ?{
? ? ? ?// 逐一將上面的幾個對象關(guān)閉,因為不關(guān)閉的話會影響性能、并且占用資源
? ? ? ?// 注意關(guān)閉的順序,最后使用的最先關(guān)閉
? ? ? ?if (result != null)
? ? ? ? ? ?result.close();
? ? ? ?if (pre != null)
? ? ? ? ? ?pre.close();
? ? ? ?if (con != null)
? ? ? ? ? ?con.close();
? ? ? ?System.out.println("數(shù)據(jù)庫連接已關(guān)閉!");
? ?}
? ?catch (Exception e)
? ?{
? ? ? ?e.printStackTrace();
? ?}
}
}
c#中連接Oracle數(shù)據(jù)庫時使用的連接字符串:
var connectionString = "Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=192.168.115.33) (PORT=1521)))(CONNECT_DATA=(SERVICE_NAME= testDemo)));
User Id=oracle_test; Password=oracle";
其中Oracle數(shù)據(jù)庫服務(wù)器IP:192.168.115.33
ServiceName:testDemo
用戶名:oracle_test
密碼:oracle
其他連接方法參考: