插入方法不符合预期

时间:2014-01-25 21:42:06

标签: c# sql visual-studio-2012 strongly-typed-dataset dataset-designer

我使用VS2012 express(我正在使用localdb)为我的应用程序创建了我的整个数据库,因此它处理创建数据库以及为我的应用程序创建数据集和表适配器。到目前为止,它运作良好。我还制作了包装类来允许异步数据库读取,这也很有用。

在设计器中查看我的表适配器,当我添加插入方法时(例如在Races表上),它使用了以下查询:

INSERT INTO Races (ChampionshipID, Driver1, Driver2, RaceTime)
VALUES        (@ChampionshipID,@Driver1,@Driver2,@RaceTime); 
SELECT ID, ChampionshipID, Driver1, Driver2, RaceTime FROM Races WHERE (ID = SCOPE_IDENTITY())

我看到它之后进行选择以返回刚刚插入的行。这对我需要的东西来说非常完美。但是,它生成的实际方法具有以下签名:

int Insert1(long ChampionshipID, long Driver1, long Driver2, DateTime RaceTime)

它返回int而不是预期的DataRowDataTable,也不会将DataTable作为参数插入其中。

我做错了吗?我该如何实现此功能?

1 个答案:

答案 0 :(得分:1)

答案是否定的,因为insert方法使用ExcecuteNonQuery的{​​{1}}方法,这就是为什么你的insert方法返回ADO.NET并插入记录的id。

您可以在插入后尝试查询int之类的内容,这样您就可以稍后获取记录。