Store Procdure insert

rchokler

New member
Store Procdure insert

שלום לכולם Access 2003 DB Web Form כתכתי את הקטע הקוד הזה ומשום מה השגיאה שאין לי פרמטר של ברירת המחדל למרות שהגדרתי במפורש פרמטר והכנסתי לו ערך הנה:
private void Button1_Click(object sender, System.EventArgs e) { //use here Store Procdure OleDbParameter myParam = new OleDbParameter(); //Add Params oleDbCommand1.Parameters.Add("foundDate",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["foundDate"]; oleDbCommand1.Parameters.Add("founderName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["founderName"]; oleDbCommand1.Parameters.Add("founderName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["founderName"]; oleDbCommand1.Parameters.Add("email",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["email"]; oleDbCommand1.Parameters.Add("foundPlace",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["foundPlace"]; oleDbCommand1.Parameters.Add("category",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["category"]; oleDbCommand1.Parameters.Add("objectName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["objectName"]; oleDbCommand1.Parameters.Add("phoneNumber",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["phoneNumber"]; //Declare store procdure oleDbCommand1.CommandType = CommandType.StoredProcedure; //try //{ oleDbConnection1.Open(); oleDbCommand1.ExecuteNonQuery(); oleDbConnection1.Close(); //}​
וזאת השאילתא ב DB
INSERT INTO AvedaFound ( FoundDate, FounderName, FounderEmail, FoundPlace, ObjectCatagory, ObjectName, PhoneNumber ) VALUES (@foundDate, @founderName, @email, @foundPlace, @category, @objectName, @phoneNumber);​
 

Justin Angel

New member
קה פרובלמה מואי צ'יקיטה?

מה זה myParam שאתה כל פעם קובע? תשים לב שבכלל מדובר על פרמטר אחד ויחיד שאתה כל פעם משנה. תחליט אם אתה יוצר את המשתנים בתוך Parameters.Add עם הפרטים של הפרטמטר או שאתה שולח טיפוס מסוג פרמטר ל-Parameters.Add. בכל מקרה, אני ממליץ בחום שתביט על מדריכים באינטרנט לכיצד לעבוד עם OleDbParameters כי הסינטקס שהראית למעלה לא יכול לעבוד. 1. אתה לא יכול לתת שם לפרמטר מסוג OleDbParameter. 2. אתה לא יכול להתייחס אליו עם myParam@. 3. לא ברור לי מה הולך שם עם myParam.
 

rchokler

New member
תיקנתי את הטעויות הקטנות ובכל זאת

משהו מוזר בהודעת השגיאה, בקוד היה חסר לי סה"כ משהו קטן הנה.
myParam = oleDbCommand1.Parameters.Add("foundDate",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["foundDate"]; myParam = oleDbCommand1.Parameters.Add("founderName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["founderName"]; myParam = oleDbCommand1.Parameters.Add("founderName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["founderName"]; myParam = oleDbCommand1.Parameters.Add("email",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["email"]; myParam = oleDbCommand1.Parameters.Add("foundPlace",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["foundPlace"]; myParam = oleDbCommand1.Parameters.Add("category",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["category"]; myParam = oleDbCommand1.Parameters.Add("objectName",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["objectName"]; myParam = oleDbCommand1.Parameters.Add("phoneNumber",OleDbType.BSTR); myParam.Direction = ParameterDirection.Output; myParam.Value = Session["phoneNumber"]; //Declare store procdure oleDbCommand1.CommandType = CommandType.StoredProcedure; //try //{ oleDbConnection1.Open(); oleDbCommand1.ExecuteNonQuery(); oleDbConnection1.Close();​
 

24sharon

New member
כמה הערות (נראה לי ../images/Emo3.gif)

1.אקסס לא עובד עם SP, כך שנראה לי שאם אתה רוצה להריץ את השאילתא, אתה צרייך לכתוב את הSQL משורשר לתcmd.commandtext. 2. לכל SP צריך להיות שם ואני לא רואה כל קריאה לשם של הSP? 3. הוא כותב שאין ערך, תבדוק אם ה-Session["founderName"] לא ריק. או אתה יכול להוסיף לו TOSTRING)( 4. מה זה סוג הנתונים BSTR שאתה מרבה להשתמש בו למה לא char?
 

rchokler

New member
שלא יודעים, לא עונים.. סליחה על ה..

חוסר נימוס אבל הנושא מספיק חשוב לי ויש הרבה עומס בפורום, אין טעם להאריך את השאלות יותר מידי.
 

rchokler

New member
הסתדרתי תודה לכולם על העזרה

טעויות קטנות ומעצבנות בסוף הכל עובד.
 
למעלה