本来有个用XNA写的游戏,后来需要把游戏里的一些数据提取到数据库里,于是我就这样:namespace Database
{
class Database
{
     public Database()
     {
          //建立连接
          ......
     }     public void execute(string sql)
     {
          //执行sql
          ......
     }     public DataSet query(string sql)
     {
          //执行sql并返回结果
          ......
     }
}
}
在游戏的code里:class Game
{
     Database.Database db = new Datbase.Datbase();
     ... ...
     //当用到数据库时事这样的:
     db.execute(sql);     //当要从数据库掉回一些数据时:
     DataSet ds = db.query(sql);
     ......     
}
现在问题是:
如果没有网络连接,怎样还能使这个游戏正常运行呢?
我想过在每次execute和query之前先查看connection是否正常,如果不正常就直接return。但是对于返回DataSet的方法来说,就不可以直接return了。有什么好的关于数据库的设计模块,有网络连接和没有连接两种情况都通用?不用写代码,大概讲下轮廓就好了。谢谢~

解决方案 »

  1.   

    LZ,如果数据量不大的话,应该可以把数据直接存入xml文件里面吧
      

  2.   

    写一个方法,判断connection是否正常,正常才调用 execute 和 query方法
      

  3.   

    返回空DataSet 回来再判断!
      

  4.   

    其实我也不知道数据量算不算大,15个用户的数据量大概在10MB左右吧,因为有很多log需要存储。
    我不是太熟悉用xml,如果用xml,是不是会生成很多xml文件?这样会不会很麻烦呢?
      

  5.   

    这个我有想过,不过数据库的语句比如“db.execute(sql)”这样的分散在游戏的代码里太多了,如果要判断,我觉得有点麻烦,我是想只改Database里的代买,游戏里的像“db.execute(sql)”的就不改了,你有什么高见嘛?
      

  6.   

    这个我也想过,还是那个原因,因为分散到游戏代码里的Database的代码太多了,如果每个都要改成判断的话会很麻烦。我只是想把原来的Database加一个类似像开关似的模块进去,使数据库有连接的时候可以用,没有连接的情况下自动关闭,不影响主程序。还有其他办法么啊?