Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Упражнение 1: Создание и выполнение простых команд




 

В этом упражнении Вы откроете существующее приложение Adventure Works SalesApplication и напишете код ADO.NET, чтобы получить общее количество продаж, зарегистрированных в базе данных Adventure Works и обновить цену по прейскуранту всех продуктов в базе данных Adventure Works.

 

Основные задачи для этого упражнения следующие:

· Открытие существующего приложения SalesApplication.

· Исследование строки подключенияв прикладном файле конфигурации.

· Написание кода ADO.NET, чтобы получить общее количество продаж в базе данных

· Написание кода ADO.NET, чтобы обновить цены по прейскуранту продуктов в базе данных

· Компиляция и тестирование приложения SalesApplication.

 

Ø Откройте существующее решение SalesApplication

 

1. Запустите Microsoft Visual Studio 2005.

2. В меню File, нажмите пункт Open, а затем кликните Project/Solution.

3. В диалоговом окне Open Project, откройте файл приложения SalesApplication.sln для приложения Sales стартера

a. Если Вы используете Visual C#, то необходимый файл расположен E:\Labfiles\Starter\CS\SalesApplication folder.

b. Если Вы используете Visual Basic, то необходимый файл расположен E:\Labfiles\Starter\VB\SalesApplication folder.

 

Ø Просмотрите строки подключения в файле конфигурации приложения

 

1. В обзоре решений дважды кликните app.config.

2. В файле конфигурации приложения, определите местонахождение элемента <connectionStrings>.

3. В элементе <connectionStrings>, просмотрите определение подключения.

4. Закройте app.config файл.

 

Ø Создайте соединение с базой данных

 

1. В обзоре решений, щелкните правой кнопкой мыши проект SalesApplication, и затем нажмите Add Reference.

2. В диалоговом окне Add Reference, на позиции табуляции .NET, в колонке Component Name, нажмите System.Configuration, а затем кликните OK.

3. В обзоре решений, щелкните правой кнопкой мыши файл класса DatabaseConnection, и затем нажмите View Code.

4. В файле класса DatabaseConnection, добавьте using (Visual C#) или оператор Imports (Visual Basic) для следующих пространств имен:

a. System.Configuration

b. System.Data.SqlClient

5. В классе DatabaseConnection, определите местонахождение комментария TODO: [L7.2 Ex 1] Create private instances. Ниже этого комментария, создайте следующий:

a. Закрытый (private) экземпляр класса объекта ConnectionStringSettings с именем myConnectionString.

b. Закрытый экземпляр класса SqlConnection, с именем mySqlConnection.

c. Закрытый экземпляр класса SqlCommand, с именем mySqlCommand.

6. В конструкторе DatabaseConnection, определите местонахождение комментария TODO: [L7.2 Ex 1] Initialize and instantiate objects. Ниже этого комментария, выполните следующие действия:

a. Инициализируйте значение объекта myConnectionString строкой подключения, сохраненной в файле app.config.

• Если Вы используете Visual C#, используйте путь SalesApplication.Properties.Settings.AdventureWorksConnectionString.

• Если Вы используете Visual Basic, используйте путь

SalesApplication.My.MySettings.AdventureWorksConnectionString.

b. Инициализируйте объект SqlConnection, вызванный mySqlConnection, передавая свойство ConnectionString объекта myConnectionString

c. Инициализируйте объект mySqlCommand

7. Определите местонахождение комментария TODO: [L7.2 Ex 1] GetCommandObject. Удалите маркеры комментария у метода GetCommandObject.

8. В методе GetCommandObject, присвойте свойству Connection объекта mySqlCommand ссылку на объект mySqlConnection, а затем возвратите объект mySqlCommand.

9. В методе OpenConnection, добавьте код, чтобы открыть mySqlConnection соединение с базой данных.

10. В методе CloseConnection, добавьте код, чтобы закрыть mySqlConnection соединение с базой данных.

11. В меню File, нажмите Save All.

 

Ваш код должен выглядеть примерно так:

 

[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

 

Ø Используйте соединение с базой данных, чтобы получить общее количество продаж

 

1. В обзоре решений, щелкните правой кнопкой мыши salesAdministrationForm, а затем нажмите View Code.

2. В файле класса salesAdministrationForm, добавьте using (Visual C#) или оператор Imports (Visual Basic) для пространства имени System.Data.SqlClient.

3. В классе salesAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex 1] Create DatabaseConnection and SqlCommand instances. Ниже этого комментария, создайте следующий:

a. Закрытый экземпляр класса DatabaseConnection с именем myDatabaseConnection.

b. Закрытый экземпляр класса объекта SqlCommand с именем mySqlCommand.

4. В конструкторе salesAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex1] Initialize mySqlCommand. Инициализируйте значение объекта mySqlCommand возвращаемым значением метода GetCommandObject объекта myDatabaseConnection.

5. В методе GetTotalNumberOfSales, в блоке try, определите местонахождение комментария TODO: [L7.2 Ex 1] Get total number of sales. Ниже этого комментария, добавьте код, чтобы выполнить следующее:

a. Установите свойство CommandType объекта mySqlCommand к CommandType.Text.

b. Укажите в свойстве CommandText объекта mySqlCommand запрос SQL, который считает общее количество продаж в таблице Sales.SalesOrderHeader.

c. Вызовите метод OpenConnection объекта myDatabaseConnection.

d. Укажите в свойстве Text надписи numberOfSalesLabel, текст Total Number of Sales: и результат метода ExecuteScalar объекта mySqlCommand.

e. Вызовите метод CloseConnection объекта myDatabaseConnection

6. В обработчике событий salesAdministrationForm_Load, вызовите метод GetTotalNumberOfSales.

7. В меню 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);

}

}

...

}

[Visual Basic]

Imports System.Data.SqlClient

Public Class salesAdministrationForm

Dim myDatabaseConnection As DatabaseConnection = New DatabaseConnection

Private mySqlCommand As SqlCommand

Public Sub New()

InitializeComponent

mySqlCommand = myDatabaseConnection.GetCommandObject()

End Sub

Private Sub salesAdministrationForm_Load(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles MyBase.Load

GetTotalNumberOfSales()

End Sub

Private Sub 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 Ex As Exception

MessageBox.Show(Ex.Message)

End Try

End Sub

...

End Class

 

Ø Используйте соединение с базой данных, чтобы обновить весь прейскурант (ListPrices) в Таблице "Товары"(Products).

1. В обзоре решений, щелкните правой кнопкой мыши productAdministrationForm, а затем нажмите View Code.

2. В файле класса productAdministrationForm, добавьте объявление using (Visual C#) или Imports (Visual Basic) для просранства имен System.Data.SqlClient.

3. В классе productAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex1b] Create DatabaseConnection and SqlCommand instances. Ниже этого комментария, создайте следующее:

a. Закрытый экземпляр класса DatabaseConnection с именем myDatabaseConnection.

b. Закрытый экземпляр класса объекта SqlCommand с именем mySqlCommand.

4. В конструкторе productAdministrationForm, определите местонахождение комментария TODO: [L7.2 Ex 1b] Initialize mySqlCommand. Инициализируйте значение объекта mySqlCommand возвращаемым значением метода GetCommandObject объекта myDatabaseConnection.

5. В обработчике событий кликните updateProductsButton, в блоке try определите местонахождение комментария TODO: [L7.2 Ex 1] Update products. Ниже этого комментария, добавьте код, чтобы выполнить следующее:

a. Создайте десятичную переменную, названную productPrice, и инициализируйте её свойством Text поля productPriceTextBox. Вы должны будете преобразовать его к десятичному типу.

b. Установите свойство CommandType объекта mySqlCommand к CommandType.Text.

c. Укажите в свойстве CommandText объекта mySqlCommand запрос SQL, который обновляет столбец ListPrice в таблице Production.Product значением переменной productPrice.

d. Вызовите метод OpenConnection объекта myDatabaseConnection.

e. Создайте целочисленную переменную с именем numberOfRowsUpdated, и инициализируйте её возвращаемым значением метода ExecuteNonQuery объекта mySqlCommand

f. Вызовите метод CloseConnection объекта myDatabaseConnection

g. Создайте и выведите сообщение MessageBox со следующими свойствами:

· Отображает переменную numberOfRowsUpdated и сообщение, которое сообщает пользователю, что текстовые строки были успешно обновлены.

· Отображает заголовок «результат обновления» (Update Result).

6. В меню File, нажмите Save All.

 

Ваш код должен выглядеть примерно так:

[Visual C#]

using System.Data.SqlClient;

namespace SalesApplication

{

public partial class productAdministrationForm: Form

{

private DatabaseConnection myDatabaseConnection = new

DatabaseConnection();

private SqlCommand mySqlCommand;

public productAdministrationForm()

{

InitializeComponent();

// Initialize mySqlCommand to available database connection.

mySqlCommand = myDatabaseConnection.GetCommandObject();

}

private void updateProductsButton_Click(object sender, EventArgs e)

{

try

{

decimal productPrice = decimal.Parse(productPriceTextBox.Text);

mySqlCommand.CommandType = CommandType.Text;

mySqlCommand.CommandText = "UPDATE Production.Product SET "

+ "ListPrice = " + productPrice;

myDatabaseConnection.OpenConnection();

int numberOfRowsUpdated = mySqlCommand.ExecuteNonQuery();

myDatabaseConnection.CloseConnection();

MessageBox.Show(numberOfRowsUpdated.ToString() +

" rows have been successfully updated.", "Update Result");

}

catch (Exception Ex)

{

MessageBox.Show(Ex.Message, "Exception");

}

}

...

}

[Visual Basic]

...

Imports System.Data.SqlClient

Public Class productAdministrationForm

Private myDatabaseConnection As DatabaseConnection = New DatabaseConnection

Private mySqlCommand As SqlCommand

Public Sub New()

InitializeComponent

' Initialize mySqlCommand to available database connection.

mySqlCommand = myDatabaseConnection.GetCommandObject()

End Sub

Private Sub updateProductsButton_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles updateProductsButton.Click

Try

Dim productPrice As Decimal = Decimal.Parse(productPriceTextBox.Text)

mySqlCommand.CommandType = CommandType.Text

mySqlCommand.CommandText = _

"UPDATE Production.Product SET ListPrice = " _

& productPrice

myDatabaseConnection.OpenConnection()

Dim numberOfRowsUpdated As Integer = mySqlCommand.ExecuteNonQuery()

myDatabaseConnection.CloseConnection()

MessageBox.Show _

(numberOfRowsUpdated.ToString() & " rows have been successfully updated.", _

"Update Result")

Catch Ex As Exception

MessageBox.Show(Ex.Message, "Exception")

End Try

End Sub

...

End Class

 

Ø Скомпилируйте и проверьте приложение SalesApplication

1. Для компиляции приложения Adventure Works Sales System в меню Build кликните Build Solution.

2. Запустите приложение Adventure Works Sales System в меню Debug кликните Start Debugging

3. В форме Main Form кликните Sales Administration, чтобы открыть форму Sales Administration Form

4. Протестируйте Sales Administration Form, проверьте что общее количество отображенных продаж составляет 31465.

5. Закройте форму Sales Administration Form

6. В форме Main Form нажмите Product Administration.

7. В форме Product Administration Form, в блоке Enter a price, введите 405.75 и затем нажмите Update All Products Prices.

8. В диалоговом окне Update Result, проверьте что число обновленных строк 504, а затем нажмите OK.

9. Закройте форму Product Administration Form.

10. Закройте приложение Adventure Works Sales System.

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных