近日,在做一個東東,很多會跟數據庫有操作,開始也什么都不懂,遇到很多問題。現在感覺稍有熟悉,把自己的體會和方法拿出來,供大家參考。

首先定義數據源等:
private const string strContent = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = " +
            
"../../Food.mdb";

另外可以自己定義兩個與數據庫取得連接和關閉連接的函數:
public 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):
private 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
public Boolean deleteDishByName(string name)
        {
            
string strCommand = "delete from menu where dishName = '" + name + "'";

            
return exeNonQuerySQL(strCommand);
        }

另外,如果涉及到,從數據庫中取出數據,則可以這樣子:
public 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);
                }
            }

以上是我個人愚見! 大家多多指正!