* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Using Databases in C2k
Survey
Document related concepts
Endgame tablebase wikipedia , lookup
Tandem Computers wikipedia , lookup
Commitment ordering wikipedia , lookup
Global serializability wikipedia , lookup
Entity–attribute–value model wikipedia , lookup
Extensible Storage Engine wikipedia , lookup
Serializability wikipedia , lookup
Microsoft Access wikipedia , lookup
Oracle Database wikipedia , lookup
Functional Database Model wikipedia , lookup
Microsoft SQL Server wikipedia , lookup
Ingres (database) wikipedia , lookup
Open Database Connectivity wikipedia , lookup
Microsoft Jet Database Engine wikipedia , lookup
Concurrency control wikipedia , lookup
Relational model wikipedia , lookup
Database model wikipedia , lookup
Transcript
Databases: C# and SQL QUEEN’S UNIVERSITY BELFAST Database Options Table of Contents PRACTICAL 3..................................................................................................................................................... 2 APPROACH 1: SQL Express .......................................................................................................................... 2 APPROACH 2: Service-based Database .................................................................................................. 3 1 | QUEEN’S UNIVERSITY BELFAST PRACTICAL 3 There are a number of different ways to incorporate an SQL database into a C# project. Each of the approaches has advantages and disadvantages. We will examine two different approaches in this document; however, this is by no means an exhaustive list. APPROACH 1: SQL Express This is the approach that we use in our weekly lab guides. While the database connection appears in the Server Explorer in Visual Studio, the database is actually hosted on an SQL Express server. SQL Express is a separate piece of software and not part of Visual Studio. We favour this approach as it emulates an approach often used in industry whereby the database server and the application code (C# in this case) are separated, often on different physical servers. Important points to note: In this approach, the database is not integrated into the C# solution. If the C# solution is moved to another computer (for example, by memory stick, or cloud storage) the database will not be included. The developer will have to separately export the database and import it (or create it from scratch) on the new computer. This approach is supported in the QUB lab. It is also supported on most personal development computers, assuming that SQL Express was not de-selected during the Visual Studio install process. This approach is not supported in the C2k Programming Environment. If you are using the C2k Programming Environment, please see approach 2. 2 | QUEEN’S UNIVERSITY BELFAST APPROACH 2: Service-based Database This approach differs from the previous approach. In this case the database is integrated into the C# solution. This means that if the C# solution is moved to another computer, the database moves with the solution. There is no need for the developer to separately export the database and import it (or create it from scratch) on the new computer. This approach is particularly useful if solutions are frequently moved between different computers. The Service-based DB is supported in the C2k Programming Environment. However, if you are following our weekly lab guides there are a few differences in the database creation and connection processes: Creating a Service-based Database: o Create a new C# project in Visual Studio. o Right click on the application in the solution explorer and then choose Add>New Item o Choose Service-based Database from the list of Visual C# Items. Don’t forget to give your database a sensible name. You must keep the .mdf extension. 3 | QUEEN’S UNIVERSITY BELFAST o The new Service-based Database will now appear in the Solution Explorer. o The new Service-based database will also appear in the Server Explorer. If the database has a red x beside it, right click on the database and choose Refresh. o It is now possible to create tables and insert data into the the new Service-based database in the usual manner. (Hint: Right click on the database name and choose New Query from the context menu). Database connection: o The process for connecting a Service-based Database to a C# project is very similar to the process of connecting a SQL Express Database to a C# project. o In Practical 2, Task 3, Steps 2 to 6 explain the process for connecting an SQL Express database to a C# project. To connect a Service-based Database in place of an SQL Express Database follow Steps 2 to 6. Note the following: In Step 3 you will see a different string in the Data Source box. You must copy this string as it contains all of the properties needed for the string builder object, which is created in Step 6. The property AttachDBFilename will most likely contain an absolute path to the database .mdf file. It’s a good idea to replace the absolute path with the special keyword |DatsaDirectory|. For example: scStrBuild.AttachDBFilename = "C:\project\Database.mdf"; should become scStrBuild.AttachDBFilename = "|DataDirectory|Database.mdf"; 4 | QUEEN’S UNIVERSITY BELFAST o Depending on the contents of the Data Source box in Step 3, the connection code for Step 6 may be similar to this: public bool connect() { SqlConnectionStringBuilder scStrBuild = new SqlConnectionStringBuilder(); scStrBuild.DataSource = "(LocalDB)\\v11.0"; localbuilder.AttachDBFilename = "|DataDirectory|Database1.mdf"; scStrBuild.IntegratedSecurity = true; conn = new SqlConnection(scStrBuild.ToString()); try { conn.Open(); } catch (SqlException ex) { Console.WriteLine(ex); } if (conn.State == ConnectionState.Open) { return true; } else { return false; } 5 | QUEEN’S UNIVERSITY BELFAST