ABA


"שאלה על PARAMETERS ב ASP.NET"
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #12903 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 12903
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   21:04   13.09.07   
אל הפורום  
  שאלה על PARAMETERS ב ASP.NET  
 
   יצרתי את הקוד הבא בASP.NET:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
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.Sql;
using System.Data.SqlClient;

namespace WebApplication9
{
public partial class WebForm1 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
getcategory();
}

void getcategory()
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=HOME\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_products3";
cmd.Connection = conn;

try
{
conn.Open();

SqlDataReader datareader = cmd.ExecuteReader();
while (datareader.Read())
{
ListBox1.Items.Add(datareader.ToString());
}
datareader.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}

void getproductcategory()
{

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=HOME\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_productid1";
cmd.Connection = conn;

SqlParameter param = new SqlParameter();
param.ParameterName = "@ProductSubcategoryID";

Convert.ToInt64(הבעיה היא כאן!);

try
{
conn.Open();
SqlDataReader datareader = cmd.ExecuteReader();
while (datareader.Read())
{
ListBox2.Items.Add(datareader.ToString());
}
datareader.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}
}

protected void Button1_Click(object sender, EventArgs e)
{
ListBox1.Visible = false;
Button1.Visible = false;
ListBox2.Visible = true;
Button2.Visible = true;

getproductcategory();
}

protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{

}
}
}


ואת זה בSQL:


create proc sp_productid2
@ProductSubcategoryID bigint

as
begin
select * from . where productid = @ProductSubcategoryID
end
go

exec sp_productid2

המטרה היא שאחרי שלוחצים על אפשרות בLISTBOX1 שהיא קטגוריה של מוצרים
המוצרים של אותה קטגוריה יופיעו בLISTBOX2.

אבל כל דרך שאני מנסה לא יוצאת לי :\
אם יש צורך בקוד של העיצוב אני יוסיף

מישהו יכול לעזור?
תודה!


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  ממ אתה מקבל Error? או שזה לא עושה שום דבר? DLN 13.09.07 21:17 1
     בקוד עצמו אין שגיאה אבל כשאני שולח לביצוע ReDevil 13.09.07 21:47 2
         אני לא מבין איפה אתה בכלל משתמש בפרמטר? DLN 14.09.07 00:21 3
             כנס ReDevil 14.09.07 00:58 4
                 שנייה אחי לא הבנתי בדיוק מה אתה רוצה לעשות DLN 14.09.07 01:39 5
                     אתה לא אמור לעשות משהו שווה לפקודה הזאת?!?!? lior066 14.09.07 02:24 6
                         מה קורה פה :|'' DLN 14.09.07 15:11 7
  הסבר קצת יותר מפורט: ReDevil 14.09.07 19:14 8
     רגע רגע רגע DLN 14.09.07 21:01 9
         ניסיתי ככה אחי :\ ReDevil 15.09.07 00:32 10
             וואלה שכחתי DLN 15.09.07 13:47 11
                 וואלה עובד, תודה רבה!!! ReDevil 15.09.07 15:27 12

       
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:17   13.09.07   
אל הפורום  
  1. ממ אתה מקבל Error? או שזה לא עושה שום דבר?  
בתגובה להודעה מספר 0
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   21:47   13.09.07   
אל הפורום  
  2. בקוד עצמו אין שגיאה אבל כשאני שולח לביצוע  
בתגובה להודעה מספר 1
 
   ערכתי לאחרונה בתאריך 13.09.07 בשעה 21:49 בברכה, ReDevil
 
אחרי בחירה בLISTBOX1 אני מקבל שגיאה:


Procedure or function 'sp_productid2' expects parameter '@ProductSubcategoryID', which was not supplied.

הסיבה לשגיאה היא שהוא לא מקבל ID בEXEC
אבל בקוד שאני מנסה לעשות הוא אמור להעביר את הID לבד


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   00:21   14.09.07   
אל הפורום  
  3. אני לא מבין איפה אתה בכלל משתמש בפרמטר?  
בתגובה להודעה מספר 2
 
   אני רואה שאתה רק מכריז עליו ולא כולל אותו בפקודה...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   00:58   14.09.07   
אל הפורום  
  4. כנס  
בתגובה להודעה מספר 3
 
   הוא אמור להיות בתוך ה:

Convert.ToInt64();

הבעיה היא איך לכתוב את זה נכון כי שהוא יקבל את המספר של הקטגוריה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   01:39   14.09.07   
אל הפורום  
  5. שנייה אחי לא הבנתי בדיוק מה אתה רוצה לעשות  
בתגובה להודעה מספר 4
 
   לקחת מספר קטגוריה מאיזה משתנה ולהכניס אותו כפרמטר?
אז מה בדיוק אתה ממיר פה לInt?
וגם לא הוספת את הפרמטר לאובייקט פקודה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
lior066

   02:24   14.09.07   
אל הפורום  
  6. אתה לא אמור לעשות משהו שווה לפקודה הזאת?!?!?  
בתגובה להודעה מספר 5
 
   זה שאתה הופך את זה יפה וואלה טוב ונחמד , אבל אתה צריך פרמטר לשמור את הפקדוה הזאת , זה שאתה מבצע פקודה ואפילו אם היא עובדת או לא היא לא נשמרת לך אם לא שמת לב לא הכרזת על פרמטר מסוג INT64 או מה שלא רשמת לא שמתי לב , ואתה אמור לשמור את התוצאה בתוך הפרמטר ההוא , הפעולה מתבצעת אבל היא לא נשמרת היא בזיכרון הדינאמי ואין לה לאיפה להפנות את התוצאה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   15:11   14.09.07   
אל הפורום  
  7. מה קורה פה :|''  
בתגובה להודעה מספר 6
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   19:14   14.09.07   
אל הפורום  
  8. הסבר קצת יותר מפורט:  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 14.09.07 בשעה 19:15 בברכה, ReDevil
 
אני משתמש בשתי טבלאות :
production.product
ו
production.ProductSubcategory

שניהן נמצאות בAdventureWorks ומקושרות זו לזו

אני צריך לקבל את המוצרים מ PRODUCT ששייכים לכל קטגוריה ע"י לחיצה בITEM אחד בLISTBOX1 שמקבל את הפרטים שלו מ ProductSubcategory

בקשר לTOINT64 עשיתי אותו מפני שה@ProductSubcategory הוא BIGINT

מישהו יכול להסביר איך לכתוב נכון את הקוד?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   21:01   14.09.07   
אל הפורום  
  9. רגע רגע רגע  
בתגובה להודעה מספר 8
 
   אתה רוצה סה"כ להכניס לפרמטר הזה ערך כלשהו נכון?
אז זה די פשוט
נניח הערך הזה נמצא במשתנה X

param.SqlDbType = System.Data.SqlDbType.BigInt;
param.Value = Convert.ToInt64(x);

אם הבנתי אותך נכון


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   00:32   15.09.07   
אל הפורום  
  10. ניסיתי ככה אחי :\  
בתגובה להודעה מספר 9
 
   אבל זה בכל זאת מודיע לי על אותה שגיאה :\


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
DLN
חבר מתאריך 20.4.07
15884 הודעות
   13:47   15.09.07   
אל הפורום  
  11. וואלה שכחתי  
בתגובה להודעה מספר 10
 
  

cmd.Parameters.Add(param);


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות
   15:27   15.09.07   
אל הפורום  
  12. וואלה עובד, תודה רבה!!!  
בתגובה להודעה מספר 11
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net