2011-01-14 5 views
1

По некоторым причинам, если заявление ниже не работаетДублирование строк в базе

''# count if records with this user already exist in the database below 
objSQLCommand = New SqlCommand("select count(id) as record_count from table1 where user = @strUser", objSQLConnection) 
objSQLCommand.Parameters.Add("@strUser", SqlDbType.VarChar, 3).Value = strUser 

objSQLCommand.Connection.Open() 
intRecordCount = CType(objSQLCommand.ExecuteScalar(), Integer) 
objSQLCommand.Connection.Close() 

''# duplicate default rows in database if username not in database 
If intRecordCount = 0 Then 
    Response.Write(intRecordCount) 

    objSQLCommand = New SqlCommand("insert into table1 (heading, user) select heading, @strUser as user from table1 where defaults = @intDefault", objSQLConnection) 
    objSQLCommand.Parameters.Add("@strUser", SqlDbType.VarChar, 3).Value = strUser 
    objSQLCommand.Parameters.Add("@intDefault", SqlDbType.Int, 4).Value = 1 
End If 

Response.Write (intRecordCount) возвращает 0, если 0 записи будут найдены и возвращает 2, если я вручную вставить 2 строки для пользователя в базе данных.

Но по какой-либо причине инструкция if не работает. Если я запускаю запрос «insert select» вручную, он работает отлично.

Что я делаю неправильно?

ответ

1

Вы не выполняют вторую команду SQL вставки, как вы в:

intRecordCount = CType(objSQLCommand.ExecuteScalar(), Integer) 
+0

Предполагается только повторяющиеся строки, если пользователь не существует – oshirowanen

+0

Ах, это должно быть. Забыл выполнить ... – oshirowanen

+0

Вот и все. Благодаря! Не могу принять ответ еще на несколько минут. – oshirowanen

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