Oracle连接和使用

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等。

posted on 2005-11-16 22:05  yongboy  阅读(753)  评论(1编辑  收藏  举报

导航