שאלה של מתחילים...

שאלה של מתחילים...

יש לי את הקוד הזה (סליחה שהוא ארוך זה לא יקרה שנית:
<%@ Page Language="C#" Debug="true" %> <%@Import Namespace=System.Data%> <%@Import Namespace=System.Data.OleDb%> <% void OnLoad(System.EventArgs e) { string conStr; conStr = "Microsoft.Jet.OLEDB.4.0; Data Source=statDB.mdb"; OleDbConnection Conn = new OleDbConnection(conStr); // Declare a new connection object Conn.Open(); //Open a connection OleDbCommand cmd = new OleDbCommand("SELECT * FROM myTable"); OleDbDataReader dr; //Assume declaration of DataReader, Command, etc. dr = cmd.ExecuteReader(); while (dr.Read()) { Response.Write(dr.GetInt32(0)); //Field 0 contains numeric values Response.Write(dr.GetString(1)); //Field 1 contains string values } Conn.Close(); //Dont forget to close it! } %>​
משום מה יש לי את השגיאה הזו:
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS1513: } expected Source Error: Line 77: } Line 78: Line 79: private void __Render__control1(System.Web.UI.HtmlTextWriter __output, System.Web.UI.Control parameterContainer) { Line 80: Line 81: #line 5 "c:\inetpub\wwwroot\avodot\graf\pic1.aspx"​
ואין לי מה שוג מה הבעיה. תודה ארז.
 
שגיאה חדשה... (לצערי)

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately. Compiler Error Message: CS0117: 'System.Web.HttpServerUtility' does not contain a definition for 'Mappath' Source Error: Line 5: { Line 6: string conStr; Line 7: conStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.Mappath("statDB.mdb"); Line 8: OleDbConnection Conn = new OleDbConnection(conStr); // Declare a new connection object Line 9: Conn.Open(); //Open a connection Source File: c:\inetpub\wwwroot\avodot\graf\pic1.aspx Line: 7​
יש רעיון?
 

Zeliran

New member
בעקרון..

הוא אומר לך שחסר לך { איפשהו.. לא ממש מצאתי אותו בקוד.. אבל לזה הואט מתכוון..
 
עשיתי משהו כזה...

<%@Import Namespace=System.Data%> <%@import Namespace="System.Data.OleDb"%> <script language="C#" runat="server" Debug="true" > void Page_Load(object Sender,System.EventArgs e) { string conStr; conStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.Mappath("statDB.mdb"); OleDbConnection Conn = new OleDbConnection(conStr); // Declare a new connection object Conn.Open(); //Open a connection OleDbCommand cmd = new OleDbCommand("SELECT * FROM vmlIndex1"); OleDbDataReader dr; dr = cmd.ExecuteReader(); while (dr.Read()) { Response.Write(dr.GetInt32(0)); //Field 0 contains numeric values Response.Write(dr.GetString(1)); //Field 1 contains string values } Conn.Close(); //Dont forget to close it! } </script>​
אני בספק עד כמה זה משנה.
 
סוף סוף הצלחתי אבל יש עוד בעיות....

אני ככה שולף שדות מסויימים:
Response.Write(dr.GetInt32(0)); //Field 0 contains numeric values Response.Write(dr.GetString(1)); //Field 1 contains string values​
כיצד אני יכול לשלוף מספר מסוג float וגם מסוג שעה ותאריך? אני מצליח את זה והכ ילך לי חלק אח"כ.
 
הסיפור המלא

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

nattygur

New member
ועוד דבר

הנדסת תוכנה, שעור א': רצוי וכדאי להפריד מערכת לשכבות (תצוגה, לוגיקה, גישה לנתונים). כאשר כל שכבה עוסקת אך ורק בשלה. רק שכבת נתונים עוסקת בגישה לבסיס הנתונים ומכירה את מבנה הנתונים. שכבות אחרות לא. אמץ את השיטה הזאת ויהיה לך קך יותר גם לפתח וגם לתמוך בקוד שכתבת. שלא נדבר על תוספות ושינןיים. בקיצור SQL בתוך דפים הם מתקון לא בריא...
 

SpecialNight

New member
האם אתה מתכוון ל...

להפריד את הקוד ב 3 מחלקות ומחלקה אחת תטפך בלוגיקה ומחלקה שניה בתצוגה והמחלקת האחרת בגישה לנתונים?
 

gilad g

New member
זה לא קשור למחלקות

שכבה יכולה להכיל כמה מחלקות, וכמה Assemblies אם אתה רוצה, הכל נתון להחלטתך.
 

nattygur

New member
זאת הגדרה וירטואלית

אבל יוצאת מנקודת הנחה שכל שכבה יכולה למצוא את עצמה על מכונה אחרת ועדיין להמשיך לעבוד. נקודת הנחה, זה לא מחייב שזה יהיה כך.
 
עוד שאלה

כיצד אני נותן למשתנה float שתמיד יציג 5 ספרות אחרי הנקודה. דוגמה: כאשר יש לי את המספר 4.45 אני רוצה שהוא ישלים עוד 3 אפסים אחרי המספר. האם יש משהו מובנה בC# או שאני יהיה צריך לבנות לזה פונקציה משלי? תודה ארז.
 

gilad g

New member
שים לב..

"אפסים אחרי הנקודה" היא לא תכונה של float, אלא רק דרך שבה אתה מציג את ה-float שלך... כלומר ממיר אותו ל-string, ה-float הוא אותו float
לכן:
string toPrint = myFloat.ToString("#.00000");​
את הרפרנס לסינטקס של הפרמטר שמעבירים ל-ToString, אתה יכול למצוא פה: http://msdn.microsoft.com/library/en-us/cpguide/html/cpconcustomnumericformatstrings.asp?frame=true
 
עוד שאלה

כשאני לוקח את הקוד הזה:
StringFormat drawFormat = new StringFormat(); drawFormat.FormatFlags = StringFormatFlags.DirectionVertical; g.DrawString(LeftTitle, new Font("arial",12), blackBrush, 0, Height/2, drawFormat);​
הוא הופך לי את הטקסט לאנכי אבל הוא פונה לכיוון הלא נכון. איך אני מסובב אותו ב180 מעלות?
 
למעלה