[Visual c#]
...
using System.Configuration;
using System.Data.SqlClient;
namespace SalesApplication
{
class DatabaseConnection
{
private ConnectionStringSettings myConnectionString;
private SqlConnection mySqlConnection;
private SqlCommand mySqlCommand;
public DatabaseConnection()
{
myConnectionString = ConfigurationManager.ConnectionStrings
["SalesApplication.Properties.Settings.AdventureWorksConnectionString"];
mySqlConnection = new
SqlConnection(myConnectionString.ConnectionString);
mySqlCommand = new SqlCommand();
}
public SqlCommand GetCommandObject()
{
mySqlCommand.Connection = mySqlConnection;
return mySqlCommand;
}
public void OpenConnection()
{
mySqlConnection.Open();
}
public void CloseConnection()
{
mySqlConnection.Close();
}
}
}
[Visual Basic]
...
Imports System.Configuration
Imports System.Data.SqlClient
Public Class DatabaseConnection
Private myConnectionString As ConnectionStringSettings
Private mySqlConnection As SqlConnection
Private mySqlCommand As SqlCommand
Public Sub New()
myConnectionString = ConfigurationManager.ConnectionStrings _
("SalesApplication.My.MySettings.AdventureWorksConnectionString")
mySqlConnection = New _
SqlConnection(myConnectionString.ConnectionString)
mySqlCommand = New SqlCommand()
End Sub
Public Function GetCommandObject() As SqlCommand
mySqlCommand.Connection = mySqlConnection
Return mySqlCommand
End Function
Public Sub OpenConnection()
mySqlConnection.Open()
End Sub
Public Sub CloseConnection()
mySqlConnection.Close()
End Sub
End Class
Используйте соединение с базой данных, чтобы получить общее количество продаж
В обзоре решений, щелкните правой кнопкой мыши salesAdministrationForm, а затем нажмите View Code.
В файле класса salesAdministrationForm, добавьте using (Visual C#) или оператор Imports (Visual Basic) для пространства имени System.Data.SqlClient.
В классе salesAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex 1] Create DatabaseConnection and SqlCommand instances. Ниже этого комментария, создайте следующий:
Закрытый экземпляр класса DatabaseConnection с именем myDatabaseConnection.
Закрытый экземпляр класса объекта SqlCommand с именем mySqlCommand.
В конструкторе salesAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex1] Initialize mySqlCommand. Инициализируйте значение объекта mySqlCommand возвращаемым значением метода GetCommandObject объекта myDatabaseConnection.
В методе GetTotalNumberOfSales, в блоке try, определите местонахождение комментария TODO: [L7.2 Ex 1] Get total number of sales. Ниже этого комментария, добавьте код, чтобы выполнить следующее:
Установите свойство CommandType объекта mySqlCommand к CommandType.Text.
Укажите в свойстве CommandText объекта mySqlCommand запрос SQL, который считает общее количество продаж в таблице Sales.SalesOrderHeader.
Вызовите метод OpenConnection объекта myDatabaseConnection.
Укажите в свойстве Text надписи numberOfSalesLabel, текст Total Number of Sales: и результат метода ExecuteScalar объекта mySqlCommand.
Вызовите метод CloseConnection объекта myDatabaseConnection
В обработчике событий salesAdministrationForm_Load, вызовите метод GetTotalNumberOfSales.
В меню File, нажмите Save All.
Ваш код должен выглядеть примерно так:
[Visual C#]
...
using System.Data.SqlClient;
namespace SalesApplication
{
public partial class salesAdministrationForm : Form
{
atabaseConnection myDatabaseConnection = new DatabaseConnection();
private SqlCommand mySqlCommand;
public salesAdministrationForm()
{
InitializeComponent();
mySqlCommand = myDatabaseConnection.GetCommandObject();
}
private void salesAdministrationForm_Load(object sender, EventArgs e)
{
GetTotalNumberOfSales();
}
private void GetTotalNumberOfSales()
{
try
{
mySqlCommand.CommandType = CommandType.Text;
mySqlCommand.CommandText = "SELECT COUNT(SalesOrderID) FROM "
+ "Sales.SalesOrderHeader";
myDatabaseConnection.OpenConnection();
numberOfSalesLabel.Text = "Total Number of Sales: " +
mySqlCommand.ExecuteScalar().ToString();
myDatabaseConnection.CloseConnection();
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}
...
}