2013-12-04 6 views
1

У меня есть довольно много подобных querys, которые делают работу, я понятия не имею, почему это не будет:Почему мой запрос не запускается?

Как только я запускаю его я получаю:

Необработанное исключение типа ' System.Data.SqlServerCe.SqlCeException»произошло в System.Data.SqlServerCe.dll

... на command.ExecuteNonQuery();

Любой OBV заблуждения?

public void BorrowMovie(int memberCardNumber) 
{ 
    string connectionString = @"Data Source=|DataDirectory|\VideoStoreDB.sdf"; 
    SqlCeConnection connection = new SqlCeConnection(connectionString); 

    connection.Open(); 
    SqlCeCommand command = new SqlCeCommand(
     "UPDATE Customer SET NumberBorrowedMovies = NumberBorrowedMovies+1 " + 
     "WHERE MemberCardNR = @mcn)", connection);  
    command.Parameters.AddWithValue("@mcn", memberCardNumber);  
    command.ExecuteNonQuery(); 
    connection.Close(); 

    Console.WriteLine("Movie was borrowed!"); 
    Console.ReadLine(); 
} 
+4

Что означает 'InnerException' сказать? –

+0

Вы должны извинить меня, Саймон, но я не знаю, что такое InnerException, но ... Я новичок в C# и визуальной студии. @ Симон Уайтхед. –

+0

Надеюсь, это 'InnerExeption':' Произошла ошибка при анализе запроса. [Номер строки токена = 1, смещение линии токена = 92, токен в ошибке =>] '@SimonWhitehead :) –

ответ

6

У вас есть несбалансированные скобки:

SqlCeCommand command = new SqlCeCommand(
    "UPDATE Customer SET NumberBorrowedMovies = NumberBorrowedMovies+1 " + 
    "WHERE MemberCardNR = @mcn", connection);  

Кроме того, вы должны использовать using блоки:

public void BorrowMovie(int memberCardNumber) 
{ 
    string connectionString = @"Data Source=|DataDirectory|\VideoStoreDB.sdf"; 
    using (SqlCeConnection connection = new SqlCeConnection(connectionString)) 
    { 

    connection.Open(); 
    using (SqlCeCommand command = new SqlCeCommand(
     "UPDATE Customer SET NumberBorrowedMovies = NumberBorrowedMovies+1 " + 
     "WHERE MemberCardNR = @mcn)", connection)) 
    { 
    command.Parameters.AddWithValue("@mcn", memberCardNumber);  
    command.ExecuteNonQuery(); 
    // connection.Close(); no longer needed 
    } // command 
    } // connection 
    Console.WriteLine("Movie was borrowed!"); 
    Console.ReadLine(); 
} 
+0

Ницца найти Джона! –

+0

О, ничего себе .. не мог этого видеть! Северо-запад –

+0

О, давай, дьявол ... (ненавижу к себе) Большое спасибо за это! –

Смежные вопросы