【发布时间】:2015-10-15 17:17:43
【问题描述】:
我想动态创建表并用随机数填充,但是在执行代码时,MySQL 会抛出语法错误。
for (int i = 0; i < 100; i++)
{
//gameSession is int, i tried use Parameters.AddWithValue but still have same problem.
MySqlCommand dice = new MySqlCommand("INSERT INTO "+gameSession.ToString()+" (Dice1,Dice2) Values (@dice1,@dice2)", myConnection);
Random dice1 = new Random();
dice.Parameters.AddWithValue("@dice1", dice1.Next(1, 7));
Random dice2 = new Random();
dice.Parameters.AddWithValue("@dice2", dice2.Next(1, 7));
if (myConnection.State == ConnectionState.Closed)
{
myConnection.Open();
}
dice.ExecuteNonQuery();
}
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 INSERT INTO '7571877 附近使用的正确语法 ...
【问题讨论】:
-
什么是
7571877?是真的表吗?正确的语法是INSERT INTO [TABLE_NAME] ... -
让我猜猜。一堂一桌?它看起来像糟糕的设计
-
是的,它的表名。
-
扩展我博学的同事的想法,为什么每次会议都有单独的表格?您正在击败存在关系数据库的主要原因。创建一个包含
SessionId字段的Sessions表 -
不,你不需要。你认为你需要一个。假设您想要发挥最大的游戏分析性能。一张桌子可以超快地实现这一点。使用无限数量的表:一旦实现,实施和性能就会非常缓慢