如何在C#中执行存储过程?
使用以下SQL存储过程,我将如何在如何在C#中执行存储过程?,c#,sql,.net,C#,Sql,.net,使用以下SQL存储过程,我将如何在btnYes按钮的事件处理程序中执行它?我不知道如何执行存储过程。我设置了一个文本框来输入RoomNo。当我单击btnYes时,预期结果应该是tblRooms表中基于RoomNo的occupated布尔值设置为true 创建过程存储过程\u tblRooms\u更新 --UPDATE语句的参数 @RoomNo INT, @占用位 作为 更新tblRooms 设置已占用=@已占用 其中RoomNo=@RoomNo Update()在类中设置的方法: public
btnYes
按钮的事件处理程序中执行它?我不知道如何执行存储过程。我设置了一个文本框
来输入RoomNo
。当我单击btnYes
时,预期结果应该是tblRooms
表中基于RoomNo
的occupated
布尔值设置为true
创建过程存储过程\u tblRooms\u更新
--UPDATE语句的参数
@RoomNo INT,
@占用位
作为
更新tblRooms
设置已占用=@已占用
其中RoomNo=@RoomNo
Update()
在类中设置的方法:
public void Update(clsRoom RoomOccupancy)
{
// This function will update an existing reservation in the database
// Connect to the database
clsDataConnection DBRoomVacancy = new clsDataConnection();
// Add the parameters
DBRoomVacancy.AddParameter("@RoomNo", RoomOccupancy.RoomNo);
DBRoomVacancy.AddParameter("@Occupied", RoomOccupancy.Occupied);
// Execute the query
DBRoomVacancy.Execute("sproc_tblRooms_Update");
}
要单击以执行存储过程的btnYes
按钮的事件处理程序:
protected void btnYes_Click(object sender, EventArgs e)
{
}
在创建
Update()
方法所属的类的实例后,应该能够调用Update()
方法。因为您没有提供完整的类定义,所以在下面的示例中,我将其称为MyClass
:
protected void btnYes_Click(object sender, EventArgs e)
{
var myClass = new MyClass();
myClass.Update(new clsRoom
{
RoomNo = 1234,
Occupied = true
});
}
话虽如此,作为一个离题笔记,你的课需要做很多工作。我没看太久,但让我吃惊的是,实现(如等)的类都没有封装在块或调用中
我还注意到,该类对所有查询都使用了SqlConnection
的共享实例。最佳做法是
我还将反转一些
if
语句,并使用return
删除一些不必要的else
块。这样做的原因是为了减少不必要的嵌套,避免使用/这有点奇怪!!!创建在btnYes\u中具有更新方法的类的实例,单击并在中调用该方法以进行更新!clsDataConnection
是您定义的自定义类吗?我找不到它的任何文档…这就是我试图做的,但是我没有做这件事的经验或知识。请随意编辑btnYes_的事件处理程序,单击一些可以在执行查询时将布尔值返回为true的内容,谢谢。是的,我有自己的数据连接类。如果您愿意看一下,下面是代码的链接-我很困惑本周经常看到.net开发人员使用匈牙利符号处理堆栈溢出。谁在教人们使用这个?
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
public partial class news : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnYes_Click(object sender, EventArgs e)
{
try
{
string str = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection con = new SqlConnection(str );
SqlCommand cmd = new SqlCommand("sproc_tblRooms_Update", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@RoomNo", SqlDbType.VarChar).Value = txttitle.Text);
cmd.Parameters.Add("@Occupied ", SqlDbType.VarChar).Value = Occupied.SelectedValue.ToString();
con.Open();
cmd.ExecuteNonQuery();
con.Close();
lblmsg.Text = "Room has been Updated Successfully";
}
catch (Exception)
{ }
}
}