View Full Version : سوال: فراخوانی storprocedureدرasp.net
helia64
شنبه 17 تیر 1391, 10:37 صبح
سلام میشه راهنماییم کنید که چجوری میشه storprocedure ی که تو sql نوشتم اون رو در برنامه وبم فراخوانی کنم؟
fakhravari
شنبه 17 تیر 1391, 12:32 عصر
Insert
public void AddRecord()
{
try
{
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand("News_Add", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("@Title", SqlDbType.NVarChar).Value = Title;
cmd.Parameters.Add("@Abstract", SqlDbType.NVarChar).Value = Abstract;
cmd.Parameters.Add("@Contents", SqlDbType.NVarChar).Value = Contents;
cmd.Parameters.Add("@AddDate", SqlDbType.NVarChar).Value = AddDate;
cmd.Parameters.Add("@img", SqlDbType.NVarChar).Value = photoFilePath;
cmd.ExecuteNonQuery();
con.Close();
}
catch
{
lasteror = "اشکال در ثبت اطلاعات";
}
}
select
public DataTable GetOne()
{
SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand("News_GetOne", con);
cmd.CommandType = CommandType.StoredProcedure;
con.Open();
cmd.Parameters.Add("@NewsID", SqlDbType.Int).Value = NewsID;
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
con.Close();
if (dt.Rows.Count > 0)
{
this.Title = dt.Rows[0]["Title"].ToString();
this.Abstract = dt.Rows[0]["Abstract"].ToString();
this.Contents = dt.Rows[0]["Contents"].ToString();
this.AddDate = dt.Rows[0]["AddDate"].ToString();
this.NewsID = Int32.Parse(dt.Rows[0]["NewsID"].ToString());
this.photoFilePath = dt.Rows[0]["img"].ToString();
}
else
{
lasteror = "موردی یافت نشد";
}
return dt;
}
helia64
شنبه 17 تیر 1391, 18:25 عصر
ممنون اما من storproceduram را در sql دارم میخ.ام توی مدهای asp.netم فراخوانیش کنم؟
درضمن چطور میشه connection string را بصورن public برای همه صفحات تعریف کنم؟ یعنی برای همه صفحات شناخنه بشه که نخوام دیگه در هر صفحه connection string رو بنویسم
helia64
شنبه 17 تیر 1391, 21:12 عصر
ممنون اما من storprocedure رو در sqlدارم و میخوام در asp.net فقط فراخوانیش کنم. چکارکنم؟
در ضمن راهی هست که من نخوام در هرصفحه connection string را تعریف کنم؟
یعنی فقط یکجا تعریفش کنم .و دیگه نخواهد دائما در هر صفحه تعریف بشود؟
ja.softeng
شنبه 17 تیر 1391, 21:44 عصر
ممنون اما من storprocedure رو در sqlدارم و میخوام در asp.net فقط فراخوانیش کنم. چکارکنم؟
در ضمن راهی هست که من نخوام در هرصفحه connection string را تعریف کنم؟
یعنی فقط یکجا تعریفش کنم .و دیگه نخواهد دائما در هر صفحه تعریف بشود؟
دوست عزیز بهترین روش اینه که یه کلاس برای پایگاه داده بسازی و در هر جای سایتت ازش استفاده کنی این کلاسیه که من ازش استفاده میکنم برات میزارمش
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.Data.SqlClient;
/// <summary>
/// کلاس عملیات پایگاه داده
/// </summary>
public class SqlClass
{
//protected SqlConnection con1;
public SqlClass()
{
//string constr = ConfigurationManager.ConnectionStrings["SqlConnection1"].ConnectionString;
//con1 = new SqlConnection(constr);
}
//Function for run sql operation on table via parametrs
public DataTable runViaParam(string ProcedureName, string[] Parametrs, string[] P_Values)
{
string constr = ConfigurationManager.ConnectionStrings["SqlConnection1"].ConnectionString;
SqlConnection con1 = new SqlConnection(constr);
SqlDataAdapter DataAdapter = new SqlDataAdapter();
DataAdapter.SelectCommand = new SqlCommand();
DataAdapter.SelectCommand.Connection = con1;
DataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
DataAdapter.SelectCommand.CommandText = ProcedureName;
DataAdapter.SelectCommand.Parameters.Clear();
for (int i = 0; i < Parametrs.Length; i++)
{
DataAdapter.SelectCommand.Parameters.AddWithValue("@" + Parametrs[i], P_Values[i]);
}
DataTable table = new DataTable();
con1.Open();
DataAdapter.Fill(table);
con1.Close();
DataAdapter = null;
return table;
}
//Function for run sql operation on table without parametrs
public DataTable runNotParam(string ProcedureName)
{
string constr = ConfigurationManager.ConnectionStrings["SqlConnection1"].ConnectionString;
SqlConnection con1 = new SqlConnection(constr);
SqlDataAdapter DataAdapter = new SqlDataAdapter();
DataAdapter.SelectCommand = new SqlCommand();
DataAdapter.SelectCommand.Connection = con1;
DataAdapter.SelectCommand.CommandType = CommandType.StoredProcedure;
DataAdapter.SelectCommand.CommandText = ProcedureName;
DataTable table = new DataTable();
con1.Open();
DataAdapter.Fill(table);
con1.Close();
DataAdapter = null;
return table;
}
}
طریقه استفاده ازش راحته پارامترها و مقادیر اونا را با آرایه ارسال کن باز سئوالی بود در خدمتم.
helia64
شنبه 17 تیر 1391, 23:27 عصر
خیلی خیلی ممنون
اما فقط یک سوال امکانش هست طریقه استفاده اش رو یکم بیشتر توضیح بدید؟ ممنون میشم
درضمن برای نوشتن سایت برای مراکز مهم بهتر هست ارتباط با جداول از طریق wizard باشه یا با همون کد با جداول ارتباط برقرار بشه مشکلی پیش نمی اید؟
در پایان از اینکه وقت با ارزشتان را برای پاسخگویی به سوالات اینجانب گداشتید کمال تشکر را دارم
fakhravari
شنبه 17 تیر 1391, 23:43 عصر
دوست عزیز کمی سرچ فرمایید و سوالاتی نپرسید که ربطی به این پست نداره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.