260 likes | 398 Views
Neal Stublen nstublen@jccc.edu. C#: Introduction for Developers. Open/Close Connections. ADO.NET uses “connection pooling” to optimize opening and closing connections to the database
E N D
Neal Stublen nstublen@jccc.edu C#: Introduction for Developers
Open/Close Connections • ADO.NET uses “connection pooling” to optimize opening and closing connections to the database • cxn.Open() and cxn.Close() are using connections from the connection pool that share the same connection string • ADO.NET manages the actual connection to the database • http://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.110).aspx
Think of it like this… class SqlConnectionPool { public SqlConnection Open(string cxnStr) { if (mPool.Contains(cxnString)) { return mPool[cxnString]; } // Create a new connection ... } }
And… class SqlConnectionPool { public void CheckIdle() { foreach (cxn in mPool) { if (cxn.IsIdle()) { cxn.ReallyClose(); mPool.Remove(cxn); } } } }
DataSets in Class Libraries • Create a DataSet in the class libraries • Select “Referenced DataSets” when adding a DataSet control to a form • Add a BindingSource • Add form controls and bind them to the BindingSource
Summary • MenuStrip w/ defaults • ToolStrip w/ defaults • StatusStrip • View Menu Toggles • PerformClick() • ToolStripContainer w/ docking • ContextMenuStrip • SplitContainer • ErrorProvider
File System Static Classes • System.IO namespace • Directory • CreateDirectory, Exists, Delete • File • Exists, Delete, Copy, Move • Path • Combine, GetDirectoryName, GetFileName, GetExtension, GetTempFileName • DirectorySeparatorChar, VolumeSeparatorChar
File System Instance Classes • DirectoryInfo • EnumeratorDirectories(), EnumerateFiles() • FileInfo • Name, Length, Open(), OpenText()
File System Exceptions • FileNotFoundException • DirectoryNotFoundException • EndOfStreamException • IOException
Stream Classes • FileStream • StreamReader • StreamWriter • BinaryReader • BinaryWriter
Code Practice • Browse for a text file • Place the filename in a TextBox • Read each line from the file and insert into a ListView • Use two columns in the ListView • Line number • Content
Review • OpenFileDialog • ImageList • ListView, DetailsView
What’s XML? • Structured data file • Tags identify each data element • Tags can have attributes and child tags • <Books> • <Book Code=“BK0001”> • <Name>Having Fun in Kansas City</Name> • <Price>19.95</Price> • </Book> • </Books>
XML Tags • Elements are identified by start tags, <tag_name>, and end tags, </tag_name> • Content can be placed between tags in the form of text or additional elements • Elements can be described using a single tag, <tag_name /> • Comments are tags in the form, <!-– my comment -->
Tag Attributes • In addition to content, each tag can also contain zero, one, or more attributes instead of child elements: <Book ISBN=“978-1-890774-59-2”> </Book> <Book> <ISBN>978-1-890774-59-2</ISBN> </Book>
Working with XML Files • Any text editor can be used to create XML files • Visual Studio helps create and edit XML files • Creates XML declaration • Color coded tags • Automatic indentation and closing tags • Expanding and collapsing tags
XmlReader/XmlWriter • System.XML is the namespace that contains XML classes • Useful for exporting and importing data in a common format
Writing XML Files XmlWriter w = XmlWriter.Create(path, settings); w.WriteStartDocument(); // A start tag w.WriteStartElement(root_name); // A nested start tag w.WriteStartElement(parent_name); // An attribute on the parent_name tag w.WriteAttributeString(name, value); // A complete element w.WriteElementString(child_name, value); // End tags for parent_name and root w.WriteEndElement(); w.WriteEndElement(); w.Close();
Using XMLWriterSettings • Define indentation XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.IndentChars = " ";
Code Practice • Create a new project called CustomerExport • Export the rows from the Customers table to Customers.xml • Consider how you would use SqlConnection, SqlCommand, and SqlReader • Save the XML file on the Desktop as…
XML Format <Customers> <Customer id="157"> <Name>Abeyatunge, Derek</Name> <Address>1414 S. Dairy Ashford</Address> <City>North Chili</City> <State>NY</State> <ZipCode>14514 </ZipCode> </Customer> ... </Customers>
Review • MemoryStream • XmlWriter • SqlDataReader “inspection” • System.Environment.GetFolderPath • FileStream • Debugging visualizers