انتخاب روشهای ذخیره شده SQL Server با استفاده از مثال در ASP.Net
با سلام در اینجا توضیح می دهیم که چگونه در روشهای ذخیره شده , داده ها را با استفاده از ADO.Net بازگردانیم . همچنین توضیح می دهیم که چگونه نتایج را به کنترل های داده مانند GridView یا DataGrid متصل کنیم.
برای این آموزش از جدول کارمندان پایگاه داده NorthWind استفاده می کنیم. می توانید پایگاه داده NorthWind را از اینجا دانلود کنید
رشته اتصال
<connectionStrings>
<add name="conString"
connectionString="Data Source=.\SQLEXPRESS;
database=Northwind;Integrated Security=true"/>
connectionStrings>
فضاهای نام
باید نامهای زیر را وارد کنید
C #
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
VB.Net
Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
انتخاب روشهای ذخیره شده
در اینجا یک روش انتخاب ذخیره شده وجود دارد که تمام سوابق را از جدول Employees به دست می آورد
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetAllEmployeeDetails]
AS
BEGIN
SET NOCOUNT ON;
SELECT FirstName, LastName, BirthDate, City, Country
FROM Employees
END
اکنون روش ذخیره شده را با استفاده از ADO.Net در وب سایت ASP.Net خود ارتباط می گیرم و نتایج را به GridView منتقل می کنیم. از آنجا که نیاز به بارگیری چندین ردیف داریم از روش ExecuteReader از شی SQL Command استفاده می کنیم
C #
String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetAllEmployeeDetails";
cmd.Connection = con;
try
{
con.Open();
GridView1.EmptyDataText = "No Records Found";
GridView1.DataSource = cmd.ExecuteReader() ;
GridView1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
VB.Net
Dim strConnString As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "GetAllEmployeeDetails"
cmd.Connection = con
Try
con.Open()
GridView1.EmptyDataText = "No Records Found"
GridView1.DataSource = cmd.ExecuteReader()
GridView1.DataBind()
Catch ex As Exception
Throw ex
Finally
con.Close()
con.Dispose()
End Try
انتخاب روشهای ذخیره شده با پارامتر
در اینجا سوابق فیلتر شده را بر اساس شناسه Employee دریافت می کنیم. در روش ذخیره شده زیر ، به عنوان پارامتر از Employee ID استفاده می کنیم و بر اساس شناسه ، سوابق جمع می شوند.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[GetEmployeeDetailsByID]
@EmployeeID int = 0
AS
BEGIN
SET NOCOUNT ON;
SELECT FirstName, LastName, BirthDate, City, Country
FROM Employees WHERE EmployeeID=@EmployeeID
END
حال برای ارتباط با روش ذخیره شده فوق در برنامه asp.net با استفاده از ADO.Net باید این کار را به روش زیر انجام دهیم. همانطور که میبینید همه چیز یکسان باقی مانده است ، مگر اینکه اینجا EmployeeID را به عنوان پارامتر منتقل کنیم. txtID یک TextBox است که در آن کاربربرای مشاهده جزئیات آن وارد EmployeeID در Employee می شود .
C #
String strConnString = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "GetEmployeeDetailsByID";
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = txtID.Text.Trim();
cmd.Connection = con;
try
{
con.Open();
GridView1.EmptyDataText = "No Records Found";
GridView1.DataSource = cmd.ExecuteReader();
GridView1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
VB.Net
Dim strConnString As String = ConfigurationManager.ConnectionStrings("conString").ConnectionString
Dim con As New SqlConnection(strConnString)
Dim cmd As New SqlCommand()
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "GetEmployeeDetailsByID"
cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = txtID.Text.Trim()
cmd.Connection = con
Try
con.Open()
GridView1.EmptyDataText = "No Records Found"
GridView1.DataSource = cmd.ExecuteReader()
GridView1.DataBind()
Catch ex As Exception
Throw ex
Finally
con.Close()
con.Dispose()
End Try