asp.net בקריאה מC# או VB

asp.net בקריאה מC# או VB

אני צריך שתוכנית שלי תקרא לשגרה ב asp.net שתכניס אותי לאתר שאני צריך לפתח שם (אני חדש בWEB) איך יוצרים קשר כזה? אני מניח שזה אומר לשים את השיגרה בתוכנית asp בpublic אבל משם לא יודע מה לעשות... יש לי IIS במחשב אם זה עוזר... איפה אני בכלל שם את הקובץ aspx (והאם צריך לשים שם גם משהו אחר? או שמספיק הקובץ האחד?) ניסיתי לבדוק באתרים ברשת אבל זה לא עזר במיוחד...
 
אם זה נשמע מסובך התכוונתי סך הכל

לקריאה (עם פרמטרים) מתוך תוכנה באחת השפות האלו לשגרה שנמצאת בASP.NET
 
בשביל זה נועד WebService

ב2.0 כל הקוד של דפי aspx בכלל מוגדר כ partial ולא ניתן לקרוא לו מחוץ למחלקה. אז, או שתוציא את הקוד לקובץ DLL משותף לשני האפליקציות ותקרא לו משם, או שתשתמש בWebServica. מקווה שעזרתי.
 
לא הכי הבנתי איך

אני דיי חדש בתחום... אם יש לי פרוייקט רגיל של C# יש דרך שבה אני יכול פשוט לקרוא לדף ולשלוח לו פרמטרים שיגיעו לevent arg? אני זוכר שבASP הרגיל היה...
 
ב.net זה אפשרי רק דרך ממשקי HTML

או דרך WebService. אתה יכול לקרוא לדף הזה באופן מקומי או מרוחק, בצורה הבאה:
http://MyMachine/webapp/page.aspx?parameter=whateveryouwant​
ואח"כ למצוא את הפרמטרים שלך דרך:
Dim param As String = Request.Params("parameter")​
או תקרא על WebService שנועד בדיוק לזה.
 
כלומר אם אני רוצה

להעביר string כלשהוא ברגע שנעשית לחיצה על כפתור בC# אז בלחיצה על הכפתור אני אמור לרשום http://MyMachine/webapp/page.aspx?parameter=stringName כשבמקום http://MyMachine/webapp/page.aspx אז אני רושם את הכתובת רשת של האתר?
 
כדי לבצע שאילתא דרך HTTP בNET. צריך

להשתמש בHttpWebRequest. משהו כמו:
Dim request As HttpWebRequest = WebRequest.Create(m_ProcUri.Url) request.Credentials = CredentialCache.DefaultCredentials request.AllowAutoRedirect = False request.Timeout = 30000 Dim response As HttpWebResponse = request.GetResponse()​
אבל אני מדגיש שוב, זו גישה עקומה, קשה לתחזוקה ועוד ועוד.... במקרה כזה משתמשים בWebService ואז קוראים לכל מתודה שתרצה בשמה, וניתן להעביר לה כל אובייקט שניתן לסריאליזציה ולא רק Stringים.
 
אוקיי יצרתי webservice

סידרתי שהוא יקבל את הנתונים, שתהיה לו מטודת רשת עשיתי בניה ואני מחפש קובץ להוסיף לweb site... משום מה אף אחד מהקבצים לא מתאים להוספה....
 

EdotK

New member
תסביר איך היית מבצע את זה בASP

כי נראה לי שאנחנו סתם לא מבינים מה אתה מנסה לעשות..
 
זהו שאני לא יודע ASP

אני מנסה ללמוד את הASP.NET על כל מיקרה מה שאני מנסה לעשות זה להעביר פרמטרים לאתר אז אמרו לי שאני יכול לעשות web site שיקרא לשגרה ב webservice שתשיג את הפרמטרים מDLL רגיל של C# הבעיה כרגע זה שאני לא מצליח לקרוא לשגרה של הweb service כי האתר לא מזהה אותו (לא מצליח להוסיף ווב רפרנס)
 
אוקיי סטטוס

כרגע זה עובד.... (בתודה לMSDN) עכשיו כל מה שנשאר לי זה להבין איך אני שומר רשומה מweb אני יודע שצריך ליצור streamwriter אני יוצר קובץ access ושם בספריה של זה לא? ואז ביצירה נותן לו את הכתובת רשת אם אני לא טועה לא?
 
שמעת פעם על SQL?

תייבא את הספרייה: System.Data.OleDb תיצור שאילתת הוספה משהו כמו:
INSERT INTO tblName (column1,column2,column3...) VALUES (val1,val2,val3)​
והקוד הזה יעשה לך את העבודה:
Dim oConnection As New OleDbConnection("Connection String") Dim oCommand As New OleDbCommand oCommand.Connection = oConnection oCommand.CommandText = "Command String" oCommand.ExecuteNonQuery()​
בכל מקרה כדאי לך לקרוא קצת מידע נוסף על מה שאתה עושה, כי יש כאן המון מה ללמוד.
 
האמת ניסיתי ככה

מה שאומר שהקוד הזה היה אמור לפעול
OleDbConnection connecting = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Inetpub\\wwwroot\\ziv\\server2\\app_data\\db1.mdb;User Id=admin;Password=;"); OleDbCommand command = new OleDbCommand(); command.Connection = connecting; command.CommandText = "INSERT INTO numbers (number) VALUES ('" + sum.ToString() + "')"; command.ExecuteNonQuery();​
 
קודם כל שכחתי לציין שצריך לבצע Open

כמו:
connecting.Open();​
וחוץ מזה אתה חייב לתת לASP_NET אישור לקרוא ולכתוב בקובץ הmdb שלך. אם זה לא פותר את הבעיה, אז כדאי שתכתוב פה מה הבעיה בדיוק.
 
וזה אומר

שבשורה
INSERT INTO numbers (number) VALUES('18') יש System.Data.OleDb.OleDbException: Syntax error in INSERT INTO statement. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) at System.Data.OleDb.OleDbCommand.ExecuteNonQuery() at Service.save(Int32 sum) in c:\Inetpub\wwwroot\ziv\server2\App_Code\Service.cs:line 42 at Service.GetSum() in c:\Inetpub\wwwroot\ziv\server2\App_Code\Service.cs:line 30​
קצת מוזר כי numbrs זו הטבלה, יש בה רק שני שדות ואחד מהם הוא ID שנוצר לבד...
 
זה לא זה, אבל גיליתי למה

יש לי שני שדות, אחד בעל מספור אוטומטי והשני המספר כשניסיתי לתת לשניהם ערך זה עבד... השאלה איך אני יכול להגיד לו במקום המספר של הID להשתמש במספור האוטומטי שלו?
 
למעלה