Я просмотрел страницы MSDN, чтобы узнать ADO.Net с помощью команд. Я могу читать, используя пример кода, размещенный там.ADO.Net - Почему вставка не происходит?
Но когда я попытался использовать код модификации ниже, вставка не происходит. Я не понимаю, почему. Может кто-нибудь, пожалуйста, скажите мне, что не так с этим кодом?
string connectionString = "A_VALID_CONNECTION_STRING";
string commandText =
"INSERT INTO Contacts (FullName, Mobile) VALUES ('Pierce Brosnan', '1800-007')";
SqlConnection connection = new SqlConnection(connectionString);
try
{
connection.Open();
SqlCommand command = new SqlCommand(commandText, connection);
Console.WriteLine(command.ExecuteNonQuery());
connection.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Редактировать
Исключение не отбрасывается.
ExecuteNonQuery(), который должен возвращать no. из затронутых строк возвращается
1
.Окружающая среда: Visual C# 2010 Express | SQL Server 2008 Express | Windows 7 Ultimate 32-бит.
Update
Раньше я использовал MDF файл, присутствующую в проекте. Это было, я думаю, автоматически привязано к экземпляру SQL-сервера при каждом запуске проекта. Это когда у меня возникла проблема. Строка подключения содержит некоторую информацию о прикреплении файла базы данных.
Я удалил SQL Server 2008 Express, который я установил вместе с Visual C# 2010 Express. Также удалили MDF-файл из проекта.
Я отдельно загрузил и установил SQL Server 2008 Express вместе с Management Studio Express.
Создана новая база данных в студии управления.
Использовал другой тип строки подключения, чтобы использовать базу данных на сервере.
Теперь INSERT работает!
P.S. Наверное, я должен был упомянуть, что у меня был сценарий файла прикрепленной базы данных. Очень жаль это.
Исключено ли исключение? –
№ Никакое исключение не выбрасывается (или не печатается). Console.WriteLine печатает '1'. Но когда я вижу таблицу базы данных, ничего не вставлено. Я просматриваю данные с помощью проводника базы данных в C# 2010 Express IDE. – 2010-09-11 10:57:12
Это действительно странно. Ваш код выглядит отлично, и если '1' напечатан, это означает, что была вставлена одна строка. –