PDA

View Full Version : سوال: درخواست راهنمایی در خصوص ارتباط با stored procedure ایجاد شده



davood59
پنج شنبه 12 آبان 1390, 10:04 صبح
سلام دوستان؛
در ابتدا این تصویری از بانکی هستش که ایجاد کردم:

77364
تصویر بانک


حالا من در قسمت تعریف stored procedure طبق شکل زیر یک SP ایجاد کردم با نام GetTitlebyID:

77365
تصویر SP

حالا در قسمت کد نویسی به شکل زیر عمل کردم؛ ولی راستش رو بخواین هر عددی رو که توی textbox وارد می کنم همون رو نشون میده و اون چیزی که من میخوام رو انجام نمیده! میشه بگید ایراد کار از کجاست؟


protected void BtnShow_Click(object sender, EventArgs e)
{

conObj = new SqlConnection("Data Source=df;Initial Catalog=ee;User Id=sa;Password=sasasa;");
SqlCommand cmd = new SqlCommand("GetTitlebyID", conObj);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", TextBox1.Text);
conObj.Open();
object tn=cmd.ExecuteScalar();
int t;
t=(int)tn;
Response.Write(t);
conObj.Close();
}




البته شاید علت به این دلیل باشه که من با ()response.write میخوام نتایج رو نشون بدم ولی حتی وقتی که بعنوان مثال می خوام تعداد رکوردها رو نیز که با این دستور قابل مشاهده ست ببینم بازهم بنظر ایراد میگیره!
ممنون میشم راهنماییم کنید.

ASP.NET2
پنج شنبه 12 آبان 1390, 20:04 عصر
یه سر به اینجا بزن مشکلت حل میشه:
http://www.codeproject.com/KB/cs/simplecodeasp.aspx

asif1358
پنج شنبه 12 آبان 1390, 20:21 عصر
سلام.
هنگام پاس دادن پارامتر آن را به int تبدیل کن

mehran_sh_t
پنج شنبه 12 آبان 1390, 20:44 عصر
سلام
شما در دستور select * نوشتید، یعنی تمام فیلد ها، ولی در قسمت سی شارپ از ExecuteScalar استفاده کردید، طبیعیه که فقط id رو نشون بده.

executescalar، برای هر sp که بنویسید، فیلد اول از رکورد اول رو نشون می ده، یعنی یک فیلد فقط!
برای اینکه به تمام فیلد ها دسترسی داشته باشید، از ExecuteReader استفاده کنید

موفق باشید

par4parvaz
پنج شنبه 12 آبان 1390, 23:35 عصر
conObj = new SqlConnection("Data Source=df;Initial Catalog=ee;User Id=sa;Password=sasasa;");
SqlCommand cmd = new SqlCommand("GetTitlebyID", conObj);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@ID", TextBox1.Text);
conObj.Open();
SqlDataReader dr=cmd.ExcuteReader();
while(dr.read())
{
string Title=dr["Title"].ToString();
string Abstract=dr["Abstract"].Tostring();
// ...
//
}
Response.Write(Title);// be jaye title mitavan har moteghayer digari gozasht
dr.Close();
conObj.Close();

mehran_sh_t
جمعه 13 آبان 1390, 08:26 صبح
کاربر par4parvaz لطف کردن کد رو گذاشتن، در ادامه و تصحیح این کد، متغیر ها رو بیرون از حلقه تعریف کنید که قابل دسترسی باشن. یعنی string title رو قبل از حلقه تعریف کنید(با یک مقدار اولیه)، و در حلقه مقدار دهیش کنید.

موفق باشید