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)
你有不平衡的括号:
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)