נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: שימוש בOleDb

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
1crow
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 28 April 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 115
נשלח בתאריך: 29 April 2007 בשעה 12:07 | IP רשוּם
ציטוט 1crow

שלום,
אני משתמש בOleDb ע"מ לגשת לבסיס נתונים של Access.
אם אני רוצה לבצעה פקודת insert, איך זה יראה? איפה אני יכול למצוא דוגמא לזה(רק אל תגידו גוגל כי ממש לא הולך לי איתם)?
תודה.
חזרה לתחילת העמוד הצג את כרטיס החבר של 1crow חפש הודעות אחרות של 1crow בקר בדף הבית של 1crow
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 29 April 2007 בשעה 12:56 | IP רשוּם
ציטוט shoshan

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

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
1crow
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 28 April 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 115
נשלח בתאריך: 29 April 2007 בשעה 14:00 | IP רשוּם
ציטוט 1crow

עוד פעם כנראה לא הסברתי טוב ת'בעיה :(

הבעיה היא שיש לי משפט של 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();
            }
חזרה לתחילת העמוד הצג את כרטיס החבר של 1crow חפש הודעות אחרות של 1crow בקר בדף הבית של 1crow
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 29 April 2007 בשעה 15:52 | IP רשוּם
ציטוט shoshan

אני שמח שנזכרת לפרט שפה ומה אתה מחפש [חוקי הפורום].

קוד:
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


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
1crow
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 28 April 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 115
נשלח בתאריך: 30 April 2007 בשעה 01:38 | IP רשוּם
ציטוט 1crow

היי, מצטער על כל השאלות אך עדיין יש בעיה :(

            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 חפש הודעות אחרות של 1crow בקר בדף הבית של 1crow
 
1crow
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 28 April 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 115
נשלח בתאריך: 30 April 2007 בשעה 01:40 | IP רשוּם
ציטוט 1crow

אני שולט די טוב בSQL אך אני די לא מבין איך לשלב את זה בC# או איפה אני קורא על זה בהרחבה? אני משתמש בOleDB.
חזרה לתחילת העמוד הצג את כרטיס החבר של 1crow חפש הודעות אחרות של 1crow בקר בדף הבית של 1crow
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 30 April 2007 בשעה 12:07 | IP רשוּם
ציטוט shoshan

זה כ"כ פשוט, אין ממש מה לקרוא אולי כמה דוגמאות קוד פשוטות.

שם לב שלא פתחת connection (הודעת שגיאה מאוד ברורה)

תוסיף

con.Open();


יש שאילתות שמחזירות מידע, אתה משתמש ב- OleDbDataAdapter כדי לקבל מהן מידע,
ואז בו כדי לשים את המידע ב-dataTable או dataSet.

יש שאילתות שמחזירות רק מספר או ערף אחד, בשבילהן אפשר להשתמש ב-cmd.ExecuteScalar();

ויש שאילתות שרק אמורות לעדכן את המידע, ולא מחזירות מידע מהמסד, בשבילהן משתמשים ב-cmd.ExecuteNonQuery(); שמחזיר את מספר השורות שעודכנו.

ונוסף על כל זה ב-OleDbCommand יש אפשרות לקבוע שזאת stored procedure
ע"י cmd.CommandType = CommandType.StoredPorocedure
ואז במקום להעביר SQL אתה מעביר את שם ה-SP ואחרי זה מוסיף פרמטרים ואת
ערכיהם ע"י cmd.Parameters.Add();


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
1crow
משתמש פעיל
משתמש פעיל
סמל אישי

הצטרף / הצטרפה: 28 April 2007
מדינה: Israel
משתמש: מנותק/ת
הודעות: 115
נשלח בתאריך: 30 April 2007 בשעה 14:38 | IP רשוּם
ציטוט 1crow

עדיין,שניתי את המשפט ל (בדקתי אם הפקודת insert תקינה והיא אכן מתבצעת אם מריצים אותה על בסיס נתונים אז הבעיה חייבת להיות בOleDB), מה לא עשיתי נכון הפעם?
            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.
חזרה לתחילת העמוד הצג את כרטיס החבר של 1crow חפש הודעות אחרות של 1crow בקר בדף הבית של 1crow
 
shoshan
מנהל האתר
מנהל האתר
סמל אישי

הצטרף / הצטרפה: 16 July 2005
מדינה: Israel
משתמש: מנותק/ת
הודעות: 4637
נשלח בתאריך: 30 April 2007 בשעה 16:21 | IP רשוּם
ציטוט shoshan

Name זו מילה שמורה, או שתשים אותה בין סוגריים מרובעים ( [Name] ) או שתחליף את שם העמודה.

לרשימת מילים שמורות:

קישור


__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 
יוליה בלנובסקי
אורח
אורח


הצטרף / הצטרפה: 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
נשלח בתאריך: 29 November 2008 בשעה 20:19 | IP רשוּם
ציטוט shoshan

year זאת פונקציה (צריך לשים בסוגריים מרובעים)

__________________
עד מתי רשעים יעלוזו?

עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
חזרה לתחילת העמוד הצג את כרטיס החבר של shoshan חפש הודעות אחרות של shoshan בקר בדף הבית של shoshan
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה