【问题标题】:DataSet Saving Changes数据集保存更改
【发布时间】:2016-11-08 08:11:11
【问题描述】:

我有一个 Visual Studio C# Forms 项目。在那个项目中是 SmartCon.mdf。如下所示,DataSet 已创建。

由于某种原因,数据没有保存。当我将玩家添加到数据集时,我的代码如下。

SmartConDataSet.PlayersRow newPlayer = myData.Players.NewPlayersRow();
newPlayer.Id = Guid.NewGuid().ToString();
newPlayer.Guid = newGuid;
newPlayer.FirstSeen = DateTime.Now;
newPlayer.Kills = 0;
newPlayer.Deaths = 0;
newPlayer.TotalScore = 0;
myData.Players.AddPlayersRow(newPlayer);

SmartConDataSet.NamesRow newName = myData.Names.NewNamesRow();
newName.Id = Guid.NewGuid().ToString();
newName.Name = Name;
newName.PlayerId = newPlayer.Guid;
newName.Active = 1;
myData.Names.AddNamesRow(newName);
//Update the database
myData.AcceptChanges();

为什么我的数据没有保存到数据库中?

更新: 我可以确认数据已添加到 DataSet,但未传输到数据库。

更新 2:我可能需要一个到数据库的连接字符串????

更新 3:

var playerTableAdapter = new SmartConDataSetTableAdapters.PlayersTableAdapter();
        SmartConDataSet.PlayersRow newPlayer = myData.Players.NewPlayersRow();
        newPlayer.Id = Guid.NewGuid().ToString();
        newPlayer.Guid = newGuid;
        newPlayer.FirstSeen = DateTime.Now;
        newPlayer.Kills = 0;
        newPlayer.Deaths = 0;
        newPlayer.TotalScore = 0;
        playerTableAdapter.Insert(newPlayer.Guid, newPlayer.Kills, newPlayer.Deaths, newPlayer.Id, newPlayer.FirstSeen, newPlayer.FirstSeen, 0);

        //Add the players name to the name table
        var namesTableAdapter = new SmartConDataSetTableAdapters.NamesTableAdapter();
        SmartConDataSet.NamesRow newName = myData.Names.NewNamesRow();
        newName.Id = Guid.NewGuid().ToString();
        newName.Name = Name;
        newName.PlayerId = newPlayer.Id;
        newName.Active = 1;
        var result = namesTableAdapter.Insert(newName.Id, newName.PlayerId, newName.Name, 1);

根据我的研究,DataSet 不能直接对数据库进行更改。看到这个帖子...

Does instantiating a DataSet object automatically create a connection to a SQL service-based database for CRUD operations?

但是我的数据库仍未更新为新行。

更新 4: 根据更新 3 中的链接,连接字符串也是错误的。一切正常,但是,我的连接字符串现在是我计算机上的路径,而不是相对路径。如果我把它放在其他人的电脑上,它就不会工作,因为他们的文件路径与我的不同。

【问题讨论】:

  • 正在将数据添加到 SQL Server 数据库(mdf 文件)。在数据库中查找数据。
  • 我做了,我用VS打开了数据库文件,没有数据
  • 检查文件的位置。右键单击图标。 DataSet 应该有 DataTables,并且您应该向表中添加行。确保 DataSet 有表并且您正在添加到正确的表中。

标签: c# database dataset


【解决方案1】:

使用这些方法不会更新数据库。您需要使用 TableAdapter.Insert Update 等

【讨论】:

    猜你喜欢
    • 2016-07-13
    • 2015-01-18
    • 2016-10-18
    • 1970-01-01
    • 2018-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多