[英]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.