PDA

View Full Version : سوال: خواندن stored procdure parametrs در ASP.NET



mohsenz2004
یک شنبه 26 آبان 1387, 11:51 صبح
سلام من مي خوام يك stored procedure رو در ASP.NET كه با C# نوشته شده اجرا كنم اين پروسيجر يك تعداد پارامتر ورودي دارد و بعد يك مقدار خروجي در يك پارامتر بر مي گردو نه ضمن اينكه در انتها يك جدول رو هم select مي كنه ميشه منو راهنمايي كنيد كه چگونه مي شه پارامتر رو خوند و به يك ليبل بايند كرد زمن اينكه جدول رو هم تو يك Gride Viwe گذاشت ؟؟؟

odiseh
یک شنبه 26 آبان 1387, 12:47 عصر
خوب direction اون پارامتر خروجیت رو OutPut بذار و command ات رو اجرا کن.

kiosksoft
یک شنبه 26 آبان 1387, 12:49 عصر
دوست عزیز این لینک ها میتونه کمک کنن (توابع کاربردی)

http://www.barnamenevis.org/forum/showthread.php?t=126978
http://barnamenevis.org/forum/showthread.php?p=619108

محمدامین شریفی
یک شنبه 26 آبان 1387, 15:38 عصر
سلام من مي خوام يك stored procedure رو در ASP.NET كه با C# نوشته شده اجرا كنم اين پروسيجر يك تعداد پارامتر ورودي دارد و بعد يك مقدار خروجي در يك پارامتر بر مي گردو نه ضمن اينكه در انتها يك جدول رو هم select مي كنه ميشه منو راهنمايي كنيد كه چگونه مي شه پارامتر رو خوند و به يك ليبل بايند كرد زمن اينكه جدول رو هم تو يك Gride Viwe گذاشت ؟؟؟




وارسی پایگاه داده

حالا میخواهیم با کدهای ADO.NET پایگاه داده یمان را پویش کنیم.برای این منظور کد زیر را استفاده میکنیم:







using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Web.Configuration;

using System.Data.SqlClient;

using System.Text;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

string connectionString =

WebConfigurationManager.ConnectionStrings["AW"].ConnectionString;

StringBuilder strReturn = new StringBuilder();

using (SqlConnection sqlCon = new SqlConnection(connectionString))

{

SqlCommand sqlComm = new SqlCommand();

sqlComm.Connection = sqlCon;

sqlComm.CommandType = CommandType.Text;

sqlComm.CommandText =

"SELECT AddressLine1 FROM Person.Address " +

"WHERE (PostalCode = N'98011')";

sqlCon.Open();

SqlDataReader sRead = sqlComm.ExecuteReader();

while (sRead.Read())

{

strReturn.Append("<li>");

strReturn.Append(sRead["AddressLine1"]);

strReturn.Append("</li>");

}

}

litResults.Text = strReturn.ToString();

}


}





انواع CommandType

3 نوع CommandType که عبارت اند از:
الف ) CommandType.Text با نوشتن این عبارت به ADO میگوییم که میخواهیم دستورsql به صورت درون خطی بنویسیم (inline)،که البته این نوع نوشتن توصیه نمیشو(بدلیل خطر sql injection توسط هکر ها)
ب ) CommandType.StoredProcedure که بهترین و بهینه ترین روش برای وارسی داده هاست.در این روش دستور sql خود را در قسمت StoredProcedure پایگاه داده مینویسیم،سپس در کد ADO.NET چنین مینوسیم: sql_comm.CommandText = "hsp_srch_chap"; و
sql_comm.CommandType= CommandType.StoredProcedure;
ج ) CommandType.TableDirect در این روش باید نام جدول در پایگاه داده وجود داشته باشد.و با اجرای این دستور تمام ردیف های(record) جدول باز گردانده میشود



انواع اجرای دستور

ExecuteNonQuery : این متد برای execute کردن پرسجویی هست که شما نمیخواهید داده ای به عنوان خروجی داشته باشید،به عنوان مثال هنگامی که شما دارید delete,insert,update میکنید،میتوانید از این متد استفاده کنید. این متد تعداد record هایی که تغییر کرده اند را به صورت integer برمیگرداند.
ExecuteReader: این متد یک پرس و جوی select را execute میکند و داده ها در قالب یک شئی datareader برمیگرداند.
ExecuteXmlReader : این متد شبیه EcecuteReader میباشد با این تفاوت که یک xmlreader برمیگرداند.



استفاده از مولفه ها(parameters) در دستور


شما میتوانید مانند کد زیر پارامتر ها را درون دستورهای sql خود قرار دهید:



sqlComm.CommandText =



"SELECT AddressLine1 FROM Person.Address WHERE (PostalCode = @strZIP)";





و مانند کد زیر آنرا فراخوانی کنید:


[/ltr]
string strParamZIP = "98011";

if (Request.Params["ZIP"] != null)

strParamZIP = Request.Params["ZIP"];


sqlComm.Parameters.Add("@strZIP", strParamZIP);


[/ltr]


ببخشید اگر زیاد بود

محمدامین شریفی
یک شنبه 26 آبان 1387, 15:44 عصر
با مقدار بازگشتی دستور select دیتا گرید ویو را مقید کن.
اون مقاله بالا قسمتی از یک pdf هست که بزودی تو این سایت میزارمش

پیروز باشید