如何在C#中执行存储过程?

如何在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

使用以下SQL存储过程,我将如何在
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)
        { }
    }
}