簡體   English   中英

在C#ASP.NET中使用存儲過程

[英]Using stored procedures in C# ASP.NET

我具有非常基本的c#知識,並且一年多沒有使用它,所以我想出了一個我想解決的小項目。 但是,我需要有關存儲過程的一些幫助:

我有一個已經建立的表以及與數據庫的連接

存放馬匹的表:

o   ID
o   Name(must be unique)
o   Age (Age can only be 1 - 17)
o   Member_ID

我想執行以下存儲過程-

創建存儲過程以:

o   Insert Horse
o   Update Horse
o   Get Horse

目前此頁面仍然為空:

horse.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Horse.aspx.cs" Inherits="Horse" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Edit Horse Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>Name</td>
                <td><input type="text" name="Name" /></td>
            </tr>
            <tr>
                <td>Age</td>
                <td><input type="text" name="Age" /></td>
            </tr>
        </table>
        <input type="submit" value="Submit" />
    </div>
    </form>
</body>
</html>

horse.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Horse : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}

我當時認為顯示和編輯表格的最佳方法是使用gridview,但不確定

我想知道的是如何使用存儲過程執行不同的操作

我將不勝感激,在此先感謝您

您可以在SQL Server中創建存儲過程,如下所示:

CREATE PROC procTest
(
    @flag VARCHAR(1),
    @parameter1 VARCHAR(50),
    @paramter2 VARCHAR(25)  
)
AS
BEGIN
    IF(@flag='I')
    BEGIN
        -- insert statement
    END
    ELSE IF(@flag='U')
    BEGIN
        -- update statement
    END
    ELSE IF(@flag='D')
    BEGIN
        -- delete statement
    END
    ELSE
        BEGIN
            -- select statement
        END
END

在后面的代碼中,創建如下所示的方法,然后從所需位置調用它:

public void Crud(string flag, string parameter1, string parameter2) 
 {
        // take ConnectionString as defined in your web.config or as per your requirement.
        SqlConnection cn = new SqlConnection("ConnectionString");

        SqlCommand cmd = new SqlCommand("StoredProcedure");
        cmd.CommandType = CommandType.StoredProcedure;

        cmd.Parameters.Add("@flag", SqlDbType.VarChar, 1).Value = flag; // I for Insert/ U for Update/ D for delete/ S for select
        cmd.Parameters.Add("@Parameter1", SqlDbType.VarChar, 50).Value = parameter1;
        cmd.Parameters.Add("@Parameter2", SqlDbType.VarChar, 25).Value = parameter2;

        cn.Open();

        if (flag != "S")
        {
            cmd.ExecuteNonQuery();
        }
        else
        {
            // If you have grid view you can bind it here.
            gridView.DataSource = cmd.ExecuteReader();
        }

        cn.Close();
    }

如何執行存儲過程

但是也許使用ORM更好,例如實體框架?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM