近日,在做一个东东,很多会跟数据库有操作,开始也什么都不懂,遇到很多问题。现在感觉稍有熟悉,把自己的体会和方法拿出来,供大家参考。
首先定义数据源等:
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);
                }
            }
以上是我个人愚见! 大家多多指正!