Cześć,
trochę bawię się wersją Compact serwera SQL i przyszło mi do głowy, żeby wykorzystać parametry komendy zamiast wpisywać wszystko do stringa. Mam połączony obiekt connection, wykonuje na nim operacje poprawnie (insert, select). Następnie napisałem takie oto coś:

        internal static SqlCeCommand GetCommand()
        {
            SqlCeCommand cmd = connection.CreateCommand();

            cmd.Parameters.Add("@id", SqlDbType.Int);
            cmd.Parameters.Add("@start_date", SqlDbType.DateTime);
            cmd.Parameters.Add("@end_date", SqlDbType.DateTime);
            cmd.Parameters.Add("@done", SqlDbType.Bit);
            cmd.Parameters.Add("@name", SqlDbType.NVarChar, 256);
            cmd.Parameters.Add("@description", SqlDbType.NVarChar, 4000);

            SqlCeParameter param = cmd.Parameters.Add("@parent", SqlDbType.Int);
            param.IsNullable = true;

            return cmd;
        }

// ..... ..... ....

internal void Update()
{
            SqlCeCommand cmd = Database.GetCommand();

            cmd.CommandText = "UPDATE tasks SET start_data = @start_date, end_date = @end_date, done = @done, name = @name, description = @description " +
                                "WHERE id = @id";
            cmd.Parameters["@start_date"].Value = start_date;
            cmd.Parameters["@end_date"].Value = end_date;
            cmd.Parameters["@done"].Value = done;
            cmd.Parameters["@name"].Value = name;
            cmd.Parameters["@description"].Value = description;
            cmd.Parameters["@id"].Value = id;

            cmd.ExecuteNonQuery();
}

W momencie wykonania ExecuteNonQuery() program wywala mi wyjątek:

System.AccessViolationException was unhandled
Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source="System.Data.SqlServerCe"

W stack trace na samym końcu jest wywołanie System.Data.SqlServerCe.SqlCeCommand.CompileQueryPlan().
Pewnie coś z tymi parametrami namieszałem ale chciałem mieć jedną metodę, która już przygotowuje mi te parametry. Macie jakieś pomysły gdzie dopatrywać się przyczyny?

// edit
problem rozwiązałem, zła nazwa kolumny :| mozg mi sie lansuje od tylu godzin przed komputerem. Ale dziwne, ze taka [CIACH!] robi access violation, imo powinno rzucic jakims SqlCeException.