我在后端使用带有MSSQL数据库的应用程序。 我在SQL中创建了一个存储过程,应用程序允许我将过程链接到一个按钮。例如,我在应用程序中有一个表单,它显示了table1中的所有数据,我希望存储过程在按下按钮时操作table1中的数据。
这让我想到了这个问题:存储过程究竟如何知道table1中的哪条记录要操作?
我想只影响按下按钮时在应用程序中查看的CURRENT记录。
我认为每当打开表单时,应用程序将运行SQL select查询以在table1中显示第一条记录的数据,然后当用户输入recordID时,应用程序将运行select命令以显示数据为了记录。因此,我希望通过查看表中最新的选择记录来完成我想要实现的目标。
这可能吗?
答案 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