Adawn Δημοσ. 19 Αυγούστου 2011 Δημοσ. 19 Αυγούστου 2011 Παιδιά θα ήθελα να μάθω την θεωρία, πως δηλαδή δουλεύει η SQL και το Socket Programming δεν θέλω λινκς με παραδείγματα, θέλω απλώς να μάθω το πως. δηλαδή, παράδειγμα αυτό > try { SqlConnection thisConnection = new SqlConnection(@"Network Library=DBMSSOCN;Data Source=192.168.0.100,1433;database=Northwind;User id=Paladine;Password=;"); thisConnection.Open(); SqlCommand thisCommand = thisConnection.CreateCommand(); thisCommand.CommandText = "SELECT CustomerID, CompanyName FROM Customers"; SqlDataReader thisReader = thisCommand.ExecuteReader(); while (thisReader.Read()) { Console.WriteLine("\t{0}\t{1}", thisReader["CustomerID"], thisReader["CompanyName"]); } thisReader.Close(); thisConnection.Close(); } catch (SqlException e) { Console.WriteLine(e.Message); } SQLConection -> Για την σύνδεση .. SqlDataReader -> Για να διαβάσουμε απο την βάση SqlCommand -> για να τρέξουμε κάποια εντολή?... Θα ήθελα αναλυτικά, τι πρέπει να χρησιμοποιήσουμε και γιατί SOCKET PROGRAMMING Θα προτιμούσα ένα Guide στα ελληνικά, πώς δηλαδή επιτυγχάνεται η αποστολή πακέτων ένα παράδειγμα: > try { Console.WriteLine("That program can transfer small file. I've test up to 850kb file"); IPAddress[] ipAddress = Dns.GetHostAddresses("localhost"); IPEndPoint ipEnd = new IPEndPoint(ipAddress[0], 5656); Socket clientSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP); clientSock.Connect(ipEnd); byte[] clientData = new byte[1024 * 5000]; string receivedPath = "C:/"; int receivedBytesLen = clientSock.Receive(clientData); int fileNameLen = BitConverter.ToInt32(clientData, 0); string fileName = Encoding.ASCII.GetString(clientData, 4, fileNameLen); Console.WriteLine("Client:{0} connected & File {1} started received.", clientSock.RemoteEndPoint, fileName); BinaryWriter bWrite = new BinaryWriter(File.Open(receivedPath + fileName, FileMode.Append)); ; bWrite.Write(clientData, 4 + fileNameLen, receivedBytesLen - 4 - fileNameLen); Console.WriteLine("File: {0} received & saved at path: {1}", fileName, receivedPath); bWrite.Close(); clientSock.Close(); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine("File Sending fail." + ex.Message); } όπως βλέπετε χρησιμοποιούνται: IPAdress IPEndPoint(?) BinaryWriter τι κάνει το καθ'ένα από αυτά ... επίσης > byte[] clientData = new byte[1024 * 5000]; τι σημαίνει
Xdanger Δημοσ. 19 Αυγούστου 2011 Δημοσ. 19 Αυγούστου 2011 SQLConection -> Για την σύνδεση .. Σωστά, εκεί βάζεις το connection string. SqlDataReader -> Για να διαβάσουμε απο την βάση σωστά αν και είναι ποιο εύχρηστο να χρησιμοποιείς SqlDataAdapter και DataTable SqlCommand -> για να τρέξουμε κάποια εντολή?... Εκεί γράφεις τα SQL ερωτήματα προς την βάση Θα ήθελα αναλυτικά, τι πρέπει να χρησιμοποιήσουμε και γιατί Είναι καλύτερο και ποιο εύχρηστο να αρχίσεις να μαθαίνεις linq, υπάρχουν πολλά tutorials στο web. BinaryWriter τι κάνει το καθ'ένα από αυτά ... επίσης > byte[] clientData = new byte[1024 * 5000]; τι σημαίνει Δεν έχω ασχοληθεί με sockets για αυτό να σου απαντήσει καλύτερα κάποιος άλλος. Με το BinaryWriter γράφεις τα bytes που έχεις σε κάποια μεταβλητή σε κάποιο αρχείο. π.χ. επεξεργάζεσαι μια εικόνα, ας πούμε προσθέτεις κάποιο φίλτρο. Οι πληροφορίες αυτές βρίσκονται στην μεταβλητή που χρησιμοποιείς στο πρόγραμμα σου και με το BinaryWriter τις γράφεις σε κάποιο αρχείο. Στο byte[] clientData = new byte[1024 * 5000]; δηλώνει ότι η μεταβλητή clientData είναι 5MB. Αυτά τα 5MB δεδομένα ο κώδικας που έχεις ποιο πάνω τα προσθέτει σε ένα αρχείο στον δίσκο
παπι Δημοσ. 19 Αυγούστου 2011 Δημοσ. 19 Αυγούστου 2011 Για sql πας ADO.NET + entity framework που ειναι visual programming Ενα γρηγορο intro Πχ η εφαρμογη http://www.youtube.com/watch?v=lvw1KZSdLio Για το παραπανω SQL: MS SQL server express 08 Platform: windows form application 1) Φτιαχνεις μια db με ενα table και τα αναλογα πεδια 2) Φτιαχνεις το UI 3) Φτιαχνεις το entity σου (http://msdn.microsof...y/bb386876.aspx) soulotion explorer -> add -> new item -> ado.net entity data model σου βγαζει αυτο το wizard Το connectionstring Τωρα εχεις το UI, ενα db Object (testEntities) και ενα table object (Persons) Και τωρα ηρθε η ωρα να γραψεις τις 1000γραμμες κωδικα perfix: tb<name>: TextBox btn<name>: Button tv<name>: TreeView OnClick "Add" > private void btnAdd_Click(object sender, EventArgs e) { using (testEntities db = new testEntities())// ενα instance της db { db.AddToPersons(// εισαγωγη του row (INSERT) new Persons // ενα instance απο Person object (row) { Age = int.Parse(tbAge.Text), City = tbCity.Text, Last = tbLast.Text, Name = tbName.Text } ); db.SaveChanges(); } } OnClick Serach > private void tbSearch_TextChanged(object sender, EventArgs e) { if (tbSearch.Text.Length > 0) { tvExplorer.Nodes.Clear(); using (testEntities db = new testEntities()) { var q = db.Persons.Where(x => x.Name.IndexOf(tbSearch.Text) == 0); // SELECT * WHERE expression foreach (Persons item in q) // add result στο treeview { TreeNode tvn = new TreeNode { Text = item.Name }; tvExplorer.Nodes.Add(tvn); tvn.Nodes.AddRange( new TreeNode[] { new TreeNode { Text = "Last: "+ item.Last}, new TreeNode { Text = "Age: " + item.Age.ToString()}, new TreeNode { Text = "City: " + item.City} } ); } } } }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.