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]
-----------------------------------------------------------------------------