// 添加一条游戏存档记录 public static bool Add(Game a) { try { DbConnection con = MrOwlDB_SQLserver.GetDbConnection(); using (con) { con.Open(); DbCommand cmd = con.CreateCommand(); // 添加Quota表 string sql = "Insert Into Game ([GameName], Step, IsWin, CurrentColor, GameBoardXmlStr,GameWiner,GameModel) " + "Values (@GameName,@Step, @IsWin, @CurrentColor, @GameBoardXmlStr, @GameWiner, @GameModel)"; cmd.CommandText = sql; MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameName", DbType.AnsiString, 40, a.gameName); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@Step", DbType.Int32, 4, a.step); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@IsWin", DbType.Boolean, 4, a.isWin); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@CurrentColor", DbType.AnsiString, 10, a.CurrentColor); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameBoardXmlStr", DbType.AnsiString, 8000, a.gameBoardXmlStr); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameWiner", DbType.AnsiString, 10, a.Winer.Color); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameModel", DbType.AnsiString, 20, a.thisGameModel); int rows = cmd.ExecuteNonQuery(); // 获得Expense表新添加记录的ID cmd.CommandText = "Select @@Identity"; return(true); } } catch (System.Exception ex) { MessageBox.Show("GameUtil.Add函数失败:" + ex.Message); return(false); } }
//获取所有的游戏存档 public static DataTable GetAllGame() { try { DbConnection con = MrOwlDB_SQLserver.GetDbConnection();; using (con) { con.Open(); DbCommand cmd = con.CreateCommand(); string sql = "Select GameID,GameName From Game"; DataTable dt = new DataTable("Game"); cmd.CommandText = sql; using (DbDataReader dr = cmd.ExecuteReader()) { dt.Load(dr); } return(dt); } } catch (System.Exception ex) { MessageBox.Show("GameUtil.GetAllGame函数失败:" + ex.Message); return(null); } }
// 测试数据库连接是否成功 public static bool TestConnection() { try { DbConnection con = MrOwlDB_SQLserver.GetDbConnection(); using (con) { con.Open(); return(true); } } catch (Exception ex) { MessageBox.Show(ex.Message); return(false); } }
// 删除一条游戏存档 public static bool Delete(int gameId) { try { DbConnection con = MrOwlDB_SQLserver.GetDbConnection(); using (con) { con.Open(); DbCommand cmd = con.CreateCommand(); // 删除Airport表 cmd.CommandText = "Delete From Game Where GameID = @GameID"; MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameID", DbType.Int32, 4, gameId); cmd.ExecuteNonQuery(); return(true); } } catch (System.Exception ex) { MessageBox.Show("ProjectUtil.Delete函数失败:" + ex.Message); return(false); } }
// 获得一条游戏存档记录 public static bool GetAt(int gameId, ref Game game) { try { DbConnection con = MrOwlDB_SQLserver.GetDbConnection();; using (con) { con.Open(); string sql = "Select * From Game Where GameID = @GameID"; DbCommand cmd = MrOwlDB_SQLserver.GetDbCommand(sql, con); MrOwlDB_SQLserver.AddCmdParameter(cmd, "@GameID", DbType.Int32, 4, gameId); using (DbDataReader dr = cmd.ExecuteReader()) { if (dr.Read()) { game.gameID = Convert.ToInt32(dr["GameID"]); game.gameName = dr["GameName"].ToString(); game.step = Convert.ToInt32(dr["Step"]); game.isWin = Convert.ToBoolean(dr["IsWin"]); game.gameBoardXmlStr = dr["GameBoardXmlStr"].ToString(); string[][] tmp; tmp = GameUtil.XMLStrToErWeiArray(game.gameBoardXmlStr); game.gameBoard.Entity = game.gameBoard.StringArrayToGameBoardEnity(tmp); switch (dr["CurrentColor"].ToString()) { case "Black": game.CurrentColor = ChessPieceType.Black; break; case "White": game.CurrentColor = ChessPieceType.White; break; case "None": game.CurrentColor = ChessPieceType.None; break; } switch (dr["GameWiner"].ToString()) { case "Black": game.Winer = game.playerBlack; break; case "White": game.Winer = game.playerWhite; break; case "None": game.Winer = new Player(ChessPieceType.None); break; } IPAddress ipadd; string localip = ""; if (MrOwlLibrary.NetWork.MrOwlNetWork.GetLocalIP(out ipadd)) { localip = ipadd.ToString(); } switch (dr["GameModel"].ToString()) { case "DoubleOffLine": game.thisGameModel = GameModel.DoubleOffLine; game.playerWhite = new Player(localip, "白方选手", ChessPieceType.White); game.playerBlack = new Player(localip, "黑方选手", ChessPieceType.Black); break; case "Online": game.thisGameModel = GameModel.Online; break; case "SingleAgainsComputer": game.thisGameModel = GameModel.SingleAgainsComputer; game.playerBlack = new Player(localip, "电脑", ChessPieceType.Black); game.playerWhite = new Player(localip, "Me", ChessPieceType.White); break; } } } return(true); } } catch (System.Exception ex) { MessageBox.Show("GameUtil.GetAt函数失败:" + ex.Message); return(false); } }