C# 连接并更改表单中的.mdf数据库
我正在为一个大学项目开发一个非常简单的GUI rpg游戏 该项目需要一个GUI、数据库和某种交互功能,我有GUI和交互功能,但我在数据库部分遇到了很多问题。我正在用C#使用Microsoft Visual Studio 2012进行此操作 我试图做到这一点,当我在武器上单击“购买”时,它会更新玩家的统计数据,然后应该将新的统计数据更新到数据库的userdata表中,但我尝试的所有操作都会失败 档案:C# 连接并更改表单中的.mdf数据库,c#,database,C#,Database,我正在为一个大学项目开发一个非常简单的GUI rpg游戏 该项目需要一个GUI、数据库和某种交互功能,我有GUI和交互功能,但我在数据库部分遇到了很多问题。我正在用C#使用Microsoft Visual Studio 2012进行此操作 我试图做到这一点,当我在武器上单击“购买”时,它会更新玩家的统计数据,然后应该将新的统计数据更新到数据库的userdata表中,但我尝试的所有操作都会失败 档案: Form1.cs Player.cs Quest.cs UserDatabase.dbml Da
Form1.cs
Player.cs
Quest.cs
UserDatabase.dbml
DatabaseDataSet.xsd
Database.mdf
Battle.cs
Save.cs
Database.mdf
中有一个UserData
表
我在数据库方面的唯一经验是使用数据源以一种形式显示整个表,但我一辈子都不知道如何获取变量数据并将其放入数据库,或者从数据库获取数据并将其放入变量
以下是我对文件中的代码的了解。我知道我的代码很糟糕,我应该被枪毙,因为我在做大多数事情,但我只关心让数据库在这一点上工作,因为它是在6号周五到期,我不知道如何让它工作
已更新
实际上,我开始用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;
}
数据库.mdf的SQL代码UserData
表:
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
);
看起来您正在使用LINQtoSQL(给定DBML文件)。我看到一个datacontext类,它允许您链接到数据库,但实际上您并没有初始化它或在任何地方使用它 您的一般步骤是:
- 实例化一个新的datacontext对象(代码中的数据库)
- 创建新实体对象(UserData对象)
- 填充UserData对象的字段
- 如果数据库不存在,则将其添加到数据库中,或者更新数据库中的现有数据库 数据库(如果存在)
有关代码应该是什么样子的详细信息,请查看及其子项。请将代码简化为与您的问题无关的内容。现在还不清楚你在C代码中的什么地方试图访问DB或类似的东西。-1因为你不可能指望我读所有这些