Hi,

I am new to C# and SQLite and I am having problems using Paramaters.Add...

I prepare the "INSERT" statement and inside a loop I set the values for each
parameter and call ExecuteNonQuery();
Something similar to that:

                checkCmd.CommandText = "SELECT userId FROM users WHERE
userId = @userId";

                IDbDataParameter userIdPar = checkCmd.CreateParameter();

                userIdPar.ParameterName = "@userId";

                userIdPar.DbType = DbType.String;
                checkCmd.Parameters.Add(userIdPar);
               
                updateCmd = conn.CreateCommand();
                updateCmd.CommandText = "UPDATE users SET userName =
@userName, userPin = @userPin WHERE userId = @userId";
                IDbDataParameter userIdUp = updateCmd.CreateParameter();
                userIdUp.ParameterName = "@userId";
                userIdUp.DbType = DbType.Int32;
                IDbDataParameter userNameUp = updateCmd.CreateParameter();
                userNameUp.ParameterName = "@userName";
                userNameUp.DbType = DbType.String;
                IDbDataParameter userPinUp = updateCmd.CreateParameter();
                userPinUp.ParameterName = "@userPin";
                userPinUp.DbType = DbType.String;
                updateCmd.Parameters.Add(userIdUp);
                updateCmd.Parameters.Add(userNameUp);
                updateCmd.Parameters.Add(userPinUp);


                insertCmd = conn.CreateCommand();
                insertCmd.CommandText = "INSERT INTO users (userId,
userName, userPin) VALUES (@userId, @userName, @userPin)";
                IDbDataParameter userIdIn = insertCmd.CreateParameter();
                userIdIn.ParameterName = "@userId";
                userIdIn.DbType = DbType.Int32;
                IDbDataParameter userNameIn = insertCmd.CreateParameter();
                userNameIn.ParameterName = "@userName";
                userNameIn.DbType = DbType.String;
                IDbDataParameter userPinIn = insertCmd.CreateParameter();
                userPinIn.ParameterName = "@userPin";
                userPinIn.DbType = DbType.String;
                insertCmd.Parameters.Add(userIdIn);
                insertCmd.Parameters.Add(userNameIn);
                insertCmd.Parameters.Add(userPinIn);


                 while (objBinaryReaderRx.BaseStream.Position < PacketSize)
                {

                    int userId = objBinaryReaderRx.ReadInt32();
                    string userName = objBinaryReaderRx.ReadString();
                    string userPIN = objBinaryReaderRx.ReadString();

                    userIdPar.Value = userId;           

                    readerCheck = checkCmd.ExecuteReader();

                    if (readerCheck.Read())
                    {
                        userIdUp.Value = userId;
                        userNameUp.Value = userName;
                        userPinUp.Value = userPIN;

                        updateCmd.ExecuteNonQuery();
                    }
                    else
                    {
                        userIdIn.Value = userId;
                        userNameIn.Value = userName;
                        userPinIn.Value = userPIN;

                        insertCmd.ExecuteNonQuery();                       
                    }

                    readerCheck.Close();
                }
               

                transaction.Commit();

                return true;

                catch{...}
                finally{...}

The first INSERT works fine, but the second time I get: "Operation is not
valid due to the current state of the object."

I am using .NET 1.1, Finisar 1.1 and SQLite 3

Thanks in advance
-- 
View this message in context: 
http://www.nabble.com/Reusing-SQLiteCommand-tf2816640.html#a7861212
Sent from the SQLite mailing list archive at Nabble.com.


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to