我正在为一个大学项目开发一个非常简单的GUI RPG游戏。
项目需要GUI,数据库和某种交互性,我有GUI和交互性,但我在数据库部分遇到了很多麻烦。我是使用Microsoft Visual Studio 2012在C#中完成的。
当我点击购买武器时,我试图这样做,它会更新玩家的统计数据,然后将新的统计数据更新到数据库的userdata表,但我尝试的所有内容都会导致失败。
文件:
Form1.cs
Player.cs
Quest.cs
UserDatabase.dbml
DatabaseDataSet.xsd
Database.mdf
Battle.cs
Save.cs
Database.mdf
中有一个UserData
表。
我对数据库的唯一经验是使用数据源在表单中显示整个表,但我无法弄清楚如何获取可变数据并将其放入数据库,或者从中获取数据数据库并将其放入变量中。
以下是我在文件中的代码。我知道我的代码很糟糕,我应该为我的大部分工作做准备,但我只是关心让数据库在这一点上工作,因为它应该在星期五6号到期,我不知道如何让它发挥作用。
更新
我实际上开始使用this for an example来解决这个问题
Form1.cs
与尝试连接数据并将数据保存到数据库相关的代码:
private void saveButton_Click(object sender, EventArgs e)
{
Database db = new Database(@"Database.mdf");
Capstone.Save save = new Capstone.Save()
{
name = player.name,
job = player.job,
weapon = player.weapon,
armor = player.armor,
acc1 = player.accessory1,
acc2 = player.accessory2,
gold = player.gold,
eridium = player.eridium,
exp = player.exp,
level = player.level,
str = player.strength,
magic = player.magic,
def = player.defense,
health = player.health,
mana = player.mana,
pots = player.pots
};
db.userdata.InsertOnSubmit(save);
try
{
db.SubmitChanges;
}
catch (Exception i)
{
}
}
public class Save
{
public string name = "";
public string job = "";
public int weapon = 0;
public int armor = 0;
public int acc1 = 0;
public int acc2 = 0;
public int gold = 0;
public int eridium = 0;
public int exp = 0;
public int level = 0;
public int str = 0;
public int magic = 0;
public int def = 0;
public int health = 0;
public int mana = 0;
public int pots = 0;
}
Database.mdf
UserData
表的SQL代码:
CREATE TABLE [dbo].[UserData] (
[name] NVARCHAR (50) NULL,
[job] NCHAR (10) NULL,
[weapon] INT NULL,
[armor] INT NULL,
[acc1] INT NULL,
[acc2] INT NULL,
[gold] INT NULL,
[eridium] INT NULL,
[exp] INT NULL,
[level] INT NULL,
[str] INT NULL,
[magic] INT NULL,
[def] INT NULL,
[health] INT NULL,
[mana] INT NULL,
[pots] INT NULL
);
答案 0 :(得分:0)
看起来你正在使用LINQ to SQL(给定DBML文件)。我看到一个datacontext类,它可以让你链接到数据库,但你实际上并没有初始化它或在任何地方使用它。
您的一般步骤将是:
查看http://msdn.microsoft.com/library/bb399398.aspx及其子代,了解有关代码应该是什么样子的更多信息。