| כותב |  | 
      
        | 1crow משתמש פעיל
 
  
  
 הצטרף / הצטרפה: 28 April 2007
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 115
 | 
          שלום,
           | | נשלח בתאריך: 29 April 2007 בשעה 12:07 | | IP רשוּם | 
 |   |  
           | 
 |  אני משתמש בOleDb ע"מ לגשת לבסיס נתונים של Access.
 אם אני רוצה לבצעה פקודת insert, איך זה יראה? איפה אני יכול למצוא דוגמא לזה(רק אל תגידו גוגל כי ממש לא הולך לי איתם)?
 תודה.
 
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | shoshan מנהל האתר
 
  
  
 הצטרף / הצטרפה: 16 July 2005
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 4637
 | 
          http://www.google.co.il/search?q=sql+insert&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&cl ient=firefox-a
           | | נשלח בתאריך: 29 April 2007 בשעה 12:56 | | IP רשוּם | 
 |   |  
           | 
 |  
 __________________
 עד מתי רשעים יעלוזו?
 
 עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | 1crow משתמש פעיל
 
  
  
 הצטרף / הצטרפה: 28 April 2007
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 115
 | 
          עוד פעם כנראה לא הסברתי טוב ת'בעיה :(
           | | נשלח בתאריך: 29 April 2007 בשעה 14:00 | | IP רשוּם | 
 |   |  
           | 
 |  
 הבעיה היא שיש לי משפט של Select עם שימוש בOleDb, ואני צריך אותו דבר, רק עם Insert.
 
 
             OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("db1.mdb"));
             OleDbCommand cmd = new OleDbCommand();
             cmd.Connection = con;
             cmd.CommandText = " select name from users where Name='" + Uname.Text + "' and Password='" + password.Text + "'";
             con.Open();
             OleDbDataReader reader = cmd.ExecuteReader();
             if (reader.Read())
             {
                  nid = reader.GetString(0);
                  reader.Close();
                  con.Close();
                  Server.Transfer("system.aspx");
             }
             else
             {
                  Label3.Visible = true;
                  reader.Close();
                  con.Close();
             }
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | shoshan מנהל האתר
 
  
  
 הצטרף / הצטרפה: 16 July 2005
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 4637
 | 
          אני שמח שנזכרת לפרט שפה ומה אתה מחפש [חוקי הפורום].
           | | נשלח בתאריך: 29 April 2007 בשעה 15:52 | | IP רשוּם | 
 |   |  
           | 
 |  
 
 
| קוד: 
 
    
    | 
      
       | OleDbCommand cmd = new OleDbCommand("INSERT INTO tbl_name(fields) VALUE(values)", conn); int rows = cmd.ExecuteNonQuery();
 if (rows == 1)
 //ok
 else
 // data was not saved
 |  |  |  
 כמובן עדיף לעשות זאת עם stored procedure, ואז אתה יכול לעבוד עם cmd.CommandType=... ו-cmd.Parameters
 
 
 __________________
 עד מתי רשעים יעלוזו?
 
 עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | 1crow משתמש פעיל
 
  
  
 הצטרף / הצטרפה: 28 April 2007
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 115
 | 
          היי, מצטער על כל השאלות אך עדיין יש בעיה :(
           | | נשלח בתאריך: 30 April 2007 בשעה 01:38 | | IP רשוּם | 
 |   |  
           | 
 |  
 
             OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("db1.mdb"));
             OleDbCommand cmd = new OleDbCommand(" insert into Users(Name,Password,First,Second,Email,Company,Cadd,Cdet) VALUES ('Name','Password','First','Second','Email','Company','Cadd','Cdet')", con);
             int rows = cmd.ExecuteNonQuery(); ההודעת שגיעה שהוא נותן לי היא:  ExecuteNonQuery requires an open and available Connection. The connection's current state is closed.   Description: An
unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the
error and where it originated in the code. 
 
  Exception Details: System.InvalidOperationException:
ExecuteNonQuery requires an open and available Connection. The
connection's current state is closed
 מה לא בסדר עם מה שכתבתי או מה שכחתי לכתוב?
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | 1crow משתמש פעיל
 
  
  
 הצטרף / הצטרפה: 28 April 2007
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 115
 | 
          אני שולט די טוב בSQL אך אני די לא מבין איך לשלב את זה בC# או איפה אני קורא על זה בהרחבה? אני משתמש בOleDB.
           | | נשלח בתאריך: 30 April 2007 בשעה 01:40 | | IP רשוּם | 
 |   |  
           | 
 |  | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | shoshan מנהל האתר
 
  
  
 הצטרף / הצטרפה: 16 July 2005
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 4637
 | 
          זה כ"כ פשוט, אין ממש מה לקרוא אולי כמה דוגמאות קוד פשוטות.
           | | נשלח בתאריך: 30 April 2007 בשעה 12:07 | | IP רשוּם | 
 |   |  
           | 
 |  
 שם לב שלא פתחת connection (הודעת שגיאה מאוד ברורה)
 
 תוסיף
 
 con.Open();
 
 
 יש שאילתות שמחזירות מידע, אתה משתמש ב- OleDbDataAdapter כדי לקבל מהן מידע,
 ואז בו כדי לשים את המידע ב-dataTable או dataSet.
 
 יש שאילתות שמחזירות רק מספר או ערף אחד, בשבילהן אפשר להשתמש ב-cmd.ExecuteScalar();
 
 ויש שאילתות שרק אמורות לעדכן את המידע, ולא מחזירות מידע מהמסד, בשבילהן משתמשים ב-cmd.ExecuteNonQuery(); שמחזיר את מספר השורות שעודכנו.
 
 ונוסף על כל זה ב-OleDbCommand יש אפשרות לקבוע שזאת stored procedure
 ע"י cmd.CommandType = CommandType.StoredPorocedure
 ואז במקום להעביר SQL אתה מעביר את שם ה-SP ואחרי זה מוסיף פרמטרים ואת
 ערכיהם ע"י cmd.Parameters.Add();
 
 
 __________________
 עד מתי רשעים יעלוזו?
 
 עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | 1crow משתמש פעיל
 
  
  
 הצטרף / הצטרפה: 28 April 2007
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 115
 | 
          עדיין,שניתי את המשפט ל (בדקתי אם הפקודת insert תקינה והיא אכן מתבצעת אם מריצים אותה על בסיס נתונים אז הבעיה חייבת להיות בOleDB), מה לא עשיתי נכון הפעם?
           | | נשלח בתאריך: 30 April 2007 בשעה 14:38 | | IP רשוּם | 
 |   |  
           | 
 |   
             OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("db1.mdb"));
             OleDbCommand cmd = new OleDbCommand(" insert into Users(Name,Password,First,Second,Email,Company,Cadd,Cdet) VALUES ('Name','Password','First','Second','Email','Company','Cadd','Cdet')", con);
             con.Open();
             int rows = cmd.ExecuteNonQuery();
             con.Close();
 והerror שיוצא לי הוא
 
  Syntax error in INSERT INTO statement.   Description:  An
unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the
error and where it originated in the code. 
 
  Exception Details: System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | shoshan מנהל האתר
 
  
  
 הצטרף / הצטרפה: 16 July 2005
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 4637
 | 
          Name זו מילה שמורה, או שתשים אותה בין סוגריים מרובעים ( [Name] ) או שתחליף את שם העמודה.
           | | נשלח בתאריך: 30 April 2007 בשעה 16:21 | | IP רשוּם | 
 |   |  
           | 
 |  
 לרשימת מילים שמורות:
 
 קישור
 
 
 __________________
 עד מתי רשעים יעלוזו?
 
 עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | יוליה בלנובסקי אורח
 
  
 
 הצטרף / הצטרפה: 01 October 2003
 משתמש: אונליין
 הודעות: 12647
 | 
          
           | | נשלח בתאריך: 29 November 2008 בשעה 20:11 | | IP רשוּם | 
 |   |  
           | 
 |  גם לי יש את הבעיה Syntax error in INSERT INTO statement. על הפונקציה : ExecuteNonQuery(); ואין לי מילים שמורות.public void MotorsLogin(string motorscon) {string motorins;
OleDbConnection connectionMotor = new OleDbConnection(motorscon); motorins = "INSERT into Tbl_Motor([NameM], Nefah, Year, Yad, Cost1, Count1, Sog, Degem) Values ('" + NameM + "','" + Nefah + "','" + Year + "','" + Yad + "','" + Cost1 + "','" + Count1 + "','" + Sog + "','" + Degem + "')";
OleDbCommand build = new OleDbCommand(motorins, connectionMotor); connectionMotor.Open(); build.ExecuteNonQuery(); connectionMotor.Close(); } | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  | 
        | shoshan מנהל האתר
 
  
  
 הצטרף / הצטרפה: 16 July 2005
 מדינה: Israel
 משתמש: מנותק/ת
 הודעות: 4637
 | 
          year זאת פונקציה (צריך לשים בסוגריים מרובעים)
           | | נשלח בתאריך: 29 November 2008 בשעה 20:19 | | IP רשוּם | 
 |   |  
           | 
 |  
 __________________
 עד מתי רשעים יעלוזו?
 
 עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
 | 
       
        | חזרה לתחילת העמוד |       | 
       
       
        |  |