2133
צפיות
צפיות
2
תשובות
תשובות
פקודת Insert מתוך cshtml
אני מנסה לרשום משתמש לאתר על ידי קוד ה- 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 תשובות
תקן אותי אם אני טועה, אבל המתודה 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); //נוסיף את המשתמש החדש למסד הנתונים
———————————
אני משתמש ב- Database connection ולא בדאטאבייס עצמו. שיניתי את המתודה כדי שהיא תתאים לזה.
הוא רק צריך את שם המסד, לכול שאר הפרטים דאגתי, ולכן זה לא יכול להיות זה.
וגם בדקתי את זה על פקודת Select וזה כן עבד (זה לא מחזיר את התוצאה כי זאת מתודת void, אבל לא היה ארור).