连接数据库和相关数据库操作——之我的方法 利用OLEDB

来源:互联网 发布:网络电话软件信息泄漏 编辑:程序博客网 时间:2024/05/20 01:37
  近日,在做一个东东,很多会跟数据库有操作,开始也什么都不懂,遇到很多问题。现在感觉稍有熟悉,把自己的体会和方法拿出来,供大家参考。

<script type="text/javascript"><!--google_ad_client = "pub-2823374497557651";google_ad_width = 468;google_ad_height = 60;google_ad_format = "468x60_as";google_ad_type = "text_image";//2007-08-30: FileMidgoogle_ad_channel = "0152175912";google_color_border = "FFFFFF";google_color_bg = "FFFFFF";google_color_link = "000000";google_color_text = "000000";google_color_url = "008000";//--></script><script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script><iframe width="728" scrolling="no" height="15" frameborder="0" allowtransparency="true" hspace="0" vspace="0" marginheight="0" marginwidth="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-2823374497557651&amp;dt=1188534631051&amp;lmt=1188534630&amp;prev_fmts=728x15_0ads_al&amp;format=728x15&amp;output=html&amp;correlator=1188534630951&amp;url=http%3A%2F%2Fwww.cppblog.com%2Fadaiye%2Farchive%2F2007%2F08%2F31%2F31284.html&amp;ref=http%3A%2F%2Fwww.cppblog.com%2Fadaiye%2F&amp;cc=100&amp;ga_vid=731820495.1188534631&amp;ga_sid=1188534631&amp;ga_hid=612645000&amp;flash=9&amp;u_h=768&amp;u_w=1024&amp;u_ah=734&amp;u_aw=1024&amp;u_cd=32&amp;u_tz=480&amp;u_his=19&amp;u_java=true&amp;u_nplug=15&amp;u_nmime=54" name="google_ads_frame"></iframe>

首先定义数据源等:
undefinedprivate const string strContent = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
            
"../../Food.mdb";

另外可以自己定义两个与数据库取得连接和关闭连接的函数:
undefinedpublic static OleDbConnection getConnection()
        {
            OleDbConnection newConnection 
= new OleDbConnection(strContent);
            
return newConnection;
        }

        
public static void closeConnection(OleDbConnection conn)
        {
            
if (conn != null)
            {
                conn.Close();
            }
        }
这样就便于操作,而且也比较清晰。(以上的定义都位于DBAccess类)

现在我们可以定义具体的数据库操作函数了。
如果是不用从数据库中取出数据的,而只是把数据存入数据库中,由于在很大程度上有很大一部分代码是重复使用的,所以,我选择定义另一个数据库操作函数exeNonQuerySQL(string strCommand):
undefinedprivate Boolean exeNonQuerySQL(string strCommand)
        {
            conn 
= DBAccess.getConnection();
            
if (conn != null)
            {
                
try
                {
                    conn.Open();
                    OleDbCommand cmd 
= new OleDbCommand(strCommand, conn);

                    cmd.ExecuteNonQuery();

                    
return true;
                }
                
catch (Exception e)
                {
                    
return false;
                }
                
finally
                {
                    conn.Close();
                }
            }
            
else
            {
                
return false;
            }
        }
这里,我举一个简单的例子:delete
undefinedpublic Boolean deleteDishByName(string name)
        {
            
string strCommand = "delete from menu where dishName = '" + name + "'";

            
return exeNonQuerySQL(strCommand);
        }

另外,如果涉及到,从数据库中取出数据,则可以这样子:
undefinedpublic Dish getDishbyName(string str)
        {
            Dish dish 
= null;
            
string strCommand = "select comboID, dishName, price from menu where menu.dishName = '"+str+"'";

            conn 
= DBAccess.getConnection();
            
if (conn != null)
            { 
                
try
                {
                    conn.Open();
                    OleDbCommand cmd 
= new OleDbCommand(strCommand, conn);
                    OleDbDataReader reader;
                    reader 
= cmd.ExecuteReader();

                    
if (reader.HasRows)
                    {
                        dish 
= new Dish();
                        reader.Read();
                        dish.Id 
= Int32.Parse(reader["comboID"].ToString());
                        dish.Name 
= reader["dishName"].ToString();
                        dish.Price 
= Decimal.Parse(reader["price"].ToString());
                    }
                }
catch(Exception e)
                {
                    MessageBox.Show(e.Message);
                }
                
finally
                {
                    DBAccess.closeConnection(conn);
                }
            }

以上是我个人愚见! 大家多多指正!
原创粉丝点击