我有一个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无法直接更改为数据库。看到这个帖子......
但是我的数据库仍未使用新行进行更新。
更新4: 根据更新3中的链接,连接字符串也是错误的。一切都很好,但是,我的连接字符串现在是我的计算机上的路径而不是相对路径。如果我把它放在别人的电脑上它就不会工作,因为他们的文件路径与我的不一样。
答案 0 :(得分:0)
使用这些方法不会更新数据库。你需要使用TableAdapter.Insert Update等