ABA


"יש לי שאלה ב-ASP.NET - התחברות למסד נתונים."
גירסת הדפסה        
קבוצות דיון בניית אתרים נושא #13415 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 13415
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   17:18   03.01.08   
אל הפורום  
  יש לי שאלה ב-ASP.NET - התחברות למסד נתונים.  
 
   שלום,

הבנתי שבכדי לגשת למסד נתונים, ניתן להשתמש באובייקט ADD.NET.
ראיתי שיש מאמר על כך באתר WebMaster.
אך לא הבנתי עדיין איך אני מתחבר :|

אשמח לקבל עזרה ודוגמא קטנה בבקשה


תודה רבה.


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  שכחתי לציין, אני אשמח אם הדוגמא תיכתב ב-#C בבקשה :) Tom_l  03.01.08 18:19 1
  לא יודע אם זה הכי קצר אבל זאת הדרך שאני משתמש בה: ReDevil 04.01.08 09:24 2
     אני נגעל רק מלראות .NET Kent Net 04.01.08 11:49 3
         למה.. זה דווקא נראה נורא יפה. Morishani 04.01.08 13:40 4
     שמע קוד סקסי ביותר חח akoka 04.01.08 13:51 5
     קודם כל תודה רבה לך! דבר שני: Tom_l  04.01.08 14:38 6
         כנס להסבר מפורט יותר: ReDevil 04.01.08 15:24 7
             תודה רבה לך :) שאלות: Tom_l  04.01.08 15:36 8
                 מכתב ReDevil 04.01.08 16:08 9
                     אוקיי, כמה שאלות :) Tom_l  04.01.08 17:29 10
                         זה לא קשור אליך, זה פשוט הפרויקט שפתחתי ReDevil 04.01.08 23:02 11
                             אוקיי, תודה רבה! :) Tom_l  05.01.08 14:21 13
                     אגב לא אומרים פרוסדור חח אומרים פרוצדורה או באנגלית akoka 05.01.08 13:41 12

       
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   18:19   03.01.08   
אל הפורום  
  1. שכחתי לציין, אני אשמח אם הדוגמא תיכתב ב-#C בבקשה :)  
בתגובה להודעה מספר 0
 
   תודה רבה.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות, דרג אמינות חבר זה
   09:24   04.01.08   
אל הפורום  
  2. לא יודע אם זה הכי קצר אבל זאת הדרך שאני משתמש בה:  
בתגובה להודעה מספר 0
 
  

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=HOME\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_products3";
cmd.Connection = conn;

try
{
conn.Open();

SqlDataReader datareader = cmd.ExecuteReader();
while (datareader.Read())
{
ListItem LI = new ListItem(datareader["Name"].ToString(), datareader["ProductSubcategoryID"].ToString());
ListBox1.Items.Add(LI);

}
datareader.Close();
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}

בדוגמא הזו החיבור לDB מעביר את העמודה של השמות
במקרה הזה אין פרמטר, אם יש צורך רק תגיד אני יביא דוגמא עם.

דבר ראשון לפני שאתה עושה את הזימון, תטען את ה-DB בSERVER EXPLORER
אם אתה לא יודע אני יכין לך מדריכון


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Kent Net
חבר מתאריך 18.3.02
2359 הודעות, דרג אמינות חבר זה
   11:49   04.01.08   
אל הפורום  
  3. אני נגעל רק מלראות .NET  
בתגובה להודעה מספר 2
 
   בלאחס

רוצים גם אתם חתימת פז"ם ? https://.net/


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Morishani

דרג אמינות חבר זה
   13:40   04.01.08   
אל הפורום  
  4. למה.. זה דווקא נראה נורא יפה.  
בתגובה להודעה מספר 3
 
   חבל שאין לי כח ללמוד ת'חרא הזה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   13:51   04.01.08   
אל הפורום  
  5. שמע קוד סקסי ביותר חח  
בתגובה להודעה מספר 2
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   14:38   04.01.08   
אל הפורום  
  6. קודם כל תודה רבה לך! דבר שני:  
בתגובה להודעה מספר 2
 
   לא הבנתי את הקטע שרשמת, שבקוד שרשמת לי אין פרמטר.
ואיפה אני רושם את השאילתא?

קראתי את הקוד, ולא מצאתי את השורה שבו אני רושם את השם של המסד נתונים.

ולא הבנתי איך אני טוען את ה-DB בSERVER EXPLORER.

תודה רבה רבה לך! ושבת שלום


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות, דרג אמינות חבר זה
   15:24   04.01.08   
אל הפורום  
  7. כנס להסבר מפורט יותר:  
בתגובה להודעה מספר 6
 
   ערכתי לאחרונה בתאריך 04.01.08 בשעה 15:25 בברכה, ReDevil
 
ישנם כמה סוגים של התחברות לDB
1.

SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=HOME\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.CommandText = "Select * from [Person].[ContactType]";
cmd.CommandType = CommandType.Text;
cmd.Connection = conn;

SqlDataAdapter Adp = new SqlDataAdapter();
Adp.SelectCommand = cmd;

DataTable DT = new DataTable();

try
{
conn.Open();
Adp.Fill(DT);
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}

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

2.


SqlConnection conn = new SqlConnection();
conn.ConnectionString = "Data Source=HOME\\SQLEXPRESS;Initial Catalog=AdventureWorks;Integrated Security=True";

SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_GetCurrency1";
cmd.Connection = conn;

SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = cmd;

DataTable DT = new DataTable();

try
{
conn.Open();
adp.Fill(DT);

}
catch (Exception ex)
{
Response.Write(ex.Message);
}
finally
{
conn.Close();
}

בקוד הזה נכנסת לפעולה StoredProcedure, את הPROCEDURE אתה יוצר בSQLSERVER ומזמן אותה לקוד.


פרמטרים:


SqlConnection conn = new SqlConnection(this.ConnStr);

SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_LoginUser";
cmd.Connection = conn;

SqlParameter paramUser = new SqlParameter();
paramUser.ParameterName = "@name";
paramUser.SqlDbType = SqlDbType.NVarChar;
paramUser.Value = UserName;
cmd.Parameters.Add(paramUser);

SqlParameter paramPass = new SqlParameter();
paramPass.ParameterName = "@password";
paramPass.SqlDbType = SqlDbType.NVarChar;
paramPass.Value = Password;
cmd.Parameters.Add(paramPass);

try
{
conn.Open();
Users = (int)cmd.ExecuteScalar();

Log.WriteMessage("User connected name= " + paramUser);
}
catch (Exception ex)
{
Users = -1;
Log.WriteError(ex.Message);
}
finally
{
conn.Close();
}

את הפרמטרים אתה מגדיר בPROCEDURE ואז קורא להם בקוד עצמו


להוסיף DB לויזואל סטודיו:
http://rotter.name/User_files/nor/graphics/477e314e5fdc99ed.jpg#

בנוסף כדי להגיע לConnectionString אתה עושה ככה:
http://rotter.name/User_files/nor/graphics/477e33296b4abe87.jpg#


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   15:36   04.01.08   
אל הפורום  
  8. תודה רבה לך :) שאלות:  
בתגובה להודעה מספר 7
 
   1) באיזו דרך אתה ממליץ להשתמש בכדי להתחבר למסד נתונים?
2) באפשרות השנייה שציינת, איך אני מזמן את ה-PROCEDURE לקוד?


תודה רבה!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות, דרג אמינות חבר זה
   16:08   04.01.08   
אל הפורום  
  9. מכתב  
בתגובה להודעה מספר 8
 
   1. תלוי לאיזה צורך אתה צריך את החיבור:
א. אם אתה פשוט צריך לקבל את הטבלה שיש בDB אז אפשר להישתמש באפשרות הראשונה.

ב. אם אתה צריך להעביר מידע לDB או לקבל מידע ספציפי אז תשתמש בPROCEDURE

2.מה ששמתי לך פה זה הזימון, הקוד מחפש את הפרוסדור בDB שהגדרת לו.

כדי ליצור פרוסדור כנס לSQLSERVER ותיצור דף חדש עם NEW QUERY.

דוגמא לפרוסדור פשוט:


use AdventureWorks
go
create proc sp_proc
as
begin
select * from production.product
end
go

exec sp_proc

ואחרי שאתה יוצר את זה אתה יכול לשים בקוד את הפרוסדור בcmd.CommandText


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   17:29   04.01.08   
אל הפורום  
  10. אוקיי, כמה שאלות :)  
בתגובה להודעה מספר 9
 
   החלטתי להשתמש ב-PROCEDURE.


אז ככה,
יצרתי DB, יצרתי TABLE, בתמונה השנייה שהבאת לי בהודעה הקודמת שלך, אז לא הבנתי איך הגעת ל-Class2.cs, אתה יצרת?


ושם אני רושם את ההתחברות למסד נתונים? או בקובץ ספציפית שאני רוצה להתחבר ממנו?

תודה רבה לך!


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
ReDevil
חבר מתאריך 1.7.02
118 הודעות, דרג אמינות חבר זה
   23:02   04.01.08   
אל הפורום  
  11. זה לא קשור אליך, זה פשוט הפרויקט שפתחתי  
בתגובה להודעה מספר 10
 
   אתה יכול לעשות את זה בכל עמוד שקיים אצלך
אני פשוט עשיתי קלאס אחד שיהיה רק להתחברויות


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Tom_l 
חבר מתאריך 1.1.10
1696 הודעות, דרג אמינות חבר זה
   14:21   05.01.08   
אל הפורום  
  13. אוקיי, תודה רבה! :)  
בתגובה להודעה מספר 11
 
  


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
akoka

דרג אמינות חבר זה
   13:41   05.01.08   
אל הפורום  
  12. אגב לא אומרים פרוסדור חח אומרים פרוצדורה או באנגלית  
בתגובה להודעה מספר 9
 
   פרוסיז'ר =]


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net