代码改变世界

最近做了多个不同的数据库操作的项目,没事干了就试着封装一些基本的数据库操作,以后能自己用自己的类

2010-05-20 22:53  Aga.J  阅读(509)  评论(0编辑  收藏  举报

今天和昨天抽了点时间完成了封装新建数据库的功能

class MyDataBase
    {
        public void createSQLCeDataBase()
        {
            createSQLCeDataBase(null);
        }
        public void createSQLCeDataBase(string fileName)
        {
            createSQLCeDataBase(fileName, false);
        }
        public void createSQLCeDataBase(string fileName ,bool newOne)
        {
            createSQLCeDataBase(@"My Documents\", fileName, newOne);
        }
        public void createSQLCeDataBase(string categoryName, string fileName, bool newOne)
        {
            SQLCeFile sqlCeFile = new SQLCeFile(categoryName,fileName);

            string strConn;

            if (System.IO.File.Exists(sqlCeFile.CompleteFilePath) && newOne == true)
            {
                sqlCeFile.FileName = fileName +DateTime.Now.Second.ToString();
                sqlCeFile.CompleteFilePath = sqlCeFile.Category + sqlCeFile.FileName + ".sdf";
            }

            strConn = "Data Source=" + sqlCeFile.CompleteFilePath;
            SqlCeEngine sqlCeEngine = new SqlCeEngine();
            sqlCeEngine.LocalConnectionString = strConn;
            try
            {
                sqlCeEngine.CreateDatabase();
            }
            catch (SqlCeException e)
            {
                throw e;
            }
        }
    }
class SQLCeFile
    {
        private string fileName;
        private string category = @"My Documents\";
        private string completeFilePath;

        public SQLCeFile(string fileName)   //specify a file name
        {
            if(fileName==null)
                this.fileName = DateTime.Now.ToShortDateString();
            else
                this.fileName = fileName;

            completeFilePath = this.category + this.fileName+".sdf";
        }
        public SQLCeFile(string category, string fileName):this(fileName)
        {
            this.category = category;
            this.completeFilePath = this.category + this.fileName + ".sdf";
        }


        public string Category
        {
            set { category = value; }
            get { return category; }
        }
        public string FileName
        {
            set { fileName = value; }
            get { return fileName; }
        }
        public string CompleteFilePath
        {
            get 
            { return completeFilePath; }
            set 
            { completeFilePath = value; }
        }
    }

测试代码:

     MyDataBase myDataBase = new MyDataBase();
            myDataBase.createSQLCeDataBase();
            myDataBase.createSQLCeDataBase("test1");
            myDataBase.createSQLCeDataBase("test2");
            myDataBase.createSQLCeDataBase("test2",true);
            myDataBase.createSQLCeDataBase(@"My Documents\MyFile\", "test3", true);