1.Oracle的串連
需要匯入System.Data.OracleClient.dll,如果串連需要安裝用戶端。連接字串為:
"uid=system; pwd=sobad2005; Data Source=BLOGS"
如果輸入使用者名稱和使用者密碼,同時需要制定資料庫的名稱。
2.資料的插入,更新等操作。見下面的插入操作。
/// <summary>
/// 添加新的公告
/// </summary>
/// <param name="placTitle">公告標題</param>
/// <param name="placText">公告內容</param>
/// <returns>bool</returns>
public bool AddOnePlacard( string placTitle, string placText )
{
bool state = true;
OracleCommand oc = new OracleCommand();
oc.Connection = conn;
//查詢最大的ID值
if( conn.State == ConnectionState.Closed )
{
conn.Open();
}
oc.CommandText = "Select Max(placid) As mid From placard";
OracleDataReader read = oc.ExecuteReader();
read.Read();
int mid = 1;
if( !read.IsDBNull( 0 ))
{
mid = int.Parse( read["mid"].ToString() ) + 1;
}
read.Close();
//注意:一些關鍵字:date是不能使用的(改成wdate就可以了),如果使用,會報告:無效的主機/賦值變數名
//另外還有一些user欄位也是不要用好了。總之,欄位不要簡單,複雜些好。
oc.CommandText = "Insert Into placard( placid,plactitle,plactext,placdate ) Values( :id, :title,:text,:wdate)";
oc.Parameters.Add( ":id", OracleType.Int32 );
oc.Parameters[":id"].Value = mid;
oc.Parameters.Add( ":title", OracleType.VarChar,50 );
oc.Parameters[":title"].Value = placTitle;
oc.Parameters.Add( ":text", OracleType.VarChar,4000 );
oc.Parameters[":text"].Value = placText;
oc.Parameters.Add( ":wdate", OracleType.DateTime );
oc.Parameters[":wdate"].Value = System.DateTime.Now.ToString();
try
{
oc.ExecuteNonQuery();
}
catch
{
state = false;
}
finally
{
conn.Close();
}
return state;
}
需要主意的是在SQL中的“ @”符號,變成了“:”,這樣就可以很好的完成資料的插入操作了。
3.需要主意的
1.oracle沒找到設定自動遞增的方法,聽別人說好像沒有。
2.在程式中有些敏感欄位最好不要使用,比如date,user等。