Система. Данные. Проблема параметра SQLite

вы можете проверить, что с помощью Linq или выполнения foreach или любого итерационного метода, который вы предпочитаете gvPurchasesSelected.Rows, перед выполнением dt.Rows.Add и проверьте, совпадают ли бренд, обозначение и тип (или поля, составляющие уникальный идентификатор для строк).

Я бы сделал что-то вроде этого:

    if ( gvPurchasesSelected.Rows.Cast<DataGridViewRow>().Any(row => row.type == type && 
                                             row.brand == brand && 
                                             row.designation == designation))
        continue;
    else
        dt.Rows.Add(....)

Надеюсь, это поможет!

9
задан CasperT 15 April 2009 в 12:02
поделиться

3 ответа

Вы должны удалить кавычки вокруг имен ваших параметров в операторе INSERT.

Поэтому вместо

VALUES ('@uNameParam', '@bNavnParam', '@passwdParam', '@pc_idParam',
        '@noterParam', '@licens_idParam')

используйте

VALUES (@uNameParam, @bNavnParam, @passwdParam, @pc_idParam,
        @noterParam, @licens_idParam)
31
ответ дан 4 December 2019 в 06:41
поделиться

Благодаря rwwilden и Jorge Villuendas, ответ:

var insertSQL = new SQLiteCommand("INSERT INTO Brugere (navn, brugernavn, password, pc_id, noter, licens_id)" +
" VALUES (@uNavnParam, @bNavnParam, @passwdParam, @pc_idParam, @noterParam, @licens_idParam)", conn);
insertSQL.Parameters.AddWithValue("@uNavnParam", uNavn);
insertSQL.Parameters.AddWithValue("@bNavnParam", bNavn);
insertSQL.Parameters.AddWithValue("@passwdParam", passwd);
insertSQL.Parameters.AddWithValue("@pc_idParam", pc_id);
insertSQL.Parameters.AddWithValue("@noterParam", noter);
insertSQL.Parameters.AddWithValue("@licens_idParam", licens_id);

insertSQL.ExecuteNonQuery(); //Execute query
3
ответ дан 4 December 2019 в 06:41
поделиться

replace

VALUES ('@uNameParam', '@bNavnParam', '@passwdParam', '@pc_idParam', { {1}} '@noterParam', '@licens_idParam')

с

ЗНАЧЕНИЯ (?,?,?,?,?,?)

0
ответ дан 4 December 2019 в 06:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: