如何确定MS SQL中以前选择的字段?

时间:2016-05-24 08:07:27

标签: sql sql-server stored-procedures

我在后端使用带有MSSQL数据库的应用程序。 我在SQL中创建了一个存储过程,应用程序允许我将过程链接到一个按钮。例如,我在应用程序中有一个表单,它显示了table1中的所有数据,我希望存储过程在按下按钮时操作table1中的数据。

这让我想到了这个问题:存储过程究竟如何知道table1中的哪条记录要操作?

我想只影响按下按钮时在应用程序中查看的CURRENT记录。

我认为每当打开表单时,应用程序将运行SQL select查询以在table1中显示第一条记录的数据,然后当用户输入recordID时,应用程序将运行select命令以显示数据为了记录。因此,我希望通过查看表中最新的选择记录来完成我想要实现的目标。

这可能吗?

1 个答案:

答案 0 :(得分:0)

应用程序应将主键值传递给存储过程。 有关如何与数据库通信的选项有很多种。假设您使用.NET作为应用程序的框架,您可以使用Entity Framework,或者为了简化此示例,您可以使用SqlCommand类

在按钮的点击处理程序中添加以下代码:

using (SqlConnection conn = new SqlConnection("....your connection string...")) {
    using (SqlCommand cmd = new SqlCommand("sp_yourStoredProc", conn)) {
      cmd.CommandType = CommandType.StoredProcedure;

      cmd.Parameters.Add("@id", SqlDbType.Int).Value = intYourRecordsID;

      conn.Open();
      cmd.ExecuteNonQuery();
      //or SqlDataReader rdr = cmd.ExecuteReader(); //if you want to return data
    }
}

您的存储过程可能如下所示:

CREATE PROCEDURE dbo.sp_yourStoredProc
@id int
AS
    /*...do whatever you want with your passed @id*/
GO