שלח תשובה

זירת השאלות

1612
צפיות
2
תשובות

פקודת Insert מתוך cshtml

,‏ 10 במאי, 2014

אני מנסה לרשום משתמש לאתר על ידי קוד ה- cshtml הבא:
MyAdoHelper.DoQuery("users", "Insert Into users (username, password, e-mail, birth-date) Values (‘" + Request["username"] + "’,’" + Request["password"] + "’,’" + Request["e-mail"] + "’,#" + Request["birth-date"] + ")");
(המתודה DoQuery פשוט עושה את השאילתה בקובץ SQL שאני נותן לה)
כשאני מפעיל את הקוד זה רושם Eror Syntax.
בדקתי את המתודה עם פקודת Select וזה כן עבד.
מה לא בסדר בקוד שלי?

2 תשובות

  1. dorkelner הגיב:

    תקן אותי אם אני טועה, אבל המתודה DoQuery, אצלי לפחות, מקבלת שם מסד נתונים, ושאילתת הוספהעדכוןמחיקה ומבצעת אותה בפועל על המסד.
    אז לא נראה לי הגיוני ששם המסד נתונים שלך הוא "users" אצלי הוא "Database.mdf" למשל, אולי חסרה לך רק הסיומת .mdf, בכל מקרה אני לא יודע לעבוד טוב בcshtml אבל הנה דוגמא לקוד דומה בC#

    —————————–
    string filename="Database.mdf";
    string sql = "INSERT INTO AnimeData(UserName,Age,Requests,Gender,Email,Password)"; //ניצור את שאילתת ההוספה
    sql += " VALUES(‘" + Request.Form["UserName"] + "’,’" + Request.Form["Age"]+ "’,’" + Request.Form["Requests"]+ "’,’" + Request.Form["Gender"]+ "’,’" + Request.Form["Email"]+ "’,’" + Request.Form["Password"]+ "’)";
    MyAdoHelper.DoQuery(filename, sql); //נוסיף את המשתמש החדש למסד הנתונים
    ———————————

  2. גיא גבע הגיב:

    אני משתמש ב- Database connection ולא בדאטאבייס עצמו. שיניתי את המתודה כדי שהיא תתאים לזה.
    הוא רק צריך את שם המסד, לכול שאר הפרטים דאגתי, ולכן זה לא יכול להיות זה.
    וגם בדקתי את זה על פקודת Select וזה כן עבד (זה לא מחזיר את התוצאה כי זאת מתודת void, אבל לא היה ארור).

שלח תשובה