猿问

使用C#从SQL Server插入命令返回值

我在Visual Studio中使用C#,将一行插入到这样的表中:


INSERT INTO foo (column_name)

VALUES ('bar')

我想做这样的事情,但是我不知道正确的语法:


INSERT INTO foo (column_name)

VALUES ('bar')

RETURNING foo_id

这将从foo_id新插入的行返回该列。


此外,即使我找到了正确的语法,我仍然遇到另一个问题:我拥有SqlDataReader并SqlDataAdapter可以支配。据我所知,前一个用于读取数据,第二个用于处理数据。当插入带有return语句的行时,我同时在操作和读取数据,因此我不确定该使用什么。也许我应该使用完全不同的东西?


慕尼黑5688855
浏览 344回答 3
3回答

有只小跳蛙

我认为您可以为此使用@@ IDENTITY,但是我认为周围有一些特殊的规则/限制吗?using (var con = new SqlConnection("connection string")){    con.Open();    string query = "INSERT INTO table (column) VALUES (@value)";    var command = new SqlCommand(query, con);    command.Parameters.Add("@value", value);    command.ExecuteNonQuery();    command.Parameters.Clear();    command.CommandText = "SELECT @@IDENTITY";    int identity = Convert.ToInt32(command.ExecuteScalar());}
随时随地看视频慕课网APP
我要回答