为什么我的查询不会运行?

XT_*_*ova 1 c# sql sql-server-ce

我有很多类似的查询可以工作,我不知道为什么这个不会:

我一跑完就得到:

System.Data.SqlServerCe.dll中发生未处理的"System.Data.SqlServerCe.SqlCeException"类型异常

......上 command.ExecuteNonQuery();

有任何明显的错误吗?

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();
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ers 6

你有不平衡的括号:

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

此外,您应该使用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();
}
Run Code Online (Sandbox Code Playgroud)