-
Enthusiast
Item Error
Hi,
I have a problem ... if I check in a client appears the Hotel View and then I'll get kicked out, what remains is the error:
Screen:
http://prntscr.com/2kfbn1
Code:
Error in query:
SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid
MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Parameter @userid' must be defined.
bei MySql.Data.MySqlClient.Statement.SerializeParameter(MySqlParameterCollection parameters, MySqlPacket packet, String parmName)
bei MySql.Data.MySqlClient.Statement.InternalBindParameters(String sql, MySqlParameterCollection parameters, MySqlPacket packet)
bei MySql.Data.MySqlClient.Statement.BindParameters()
bei MySql.Data.MySqlClient.PreparableStatement.Execute()
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
bei MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
bei System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataTable[] dataTables, Int32 startRecord, Int32 maxRecords, IDbCommand command, CommandBehavior behavior)
bei System.Data.Common.DbDataAdapter.Fill(DataTable dataTable)
bei Database_Manager.Database.Session_Details.QueryAdapter.getTable()
I hope someone can help me,
LizeCF
- - - Updated - - -
#push
i need help!!
-
-
Re: Item Error
It doesnt bind a value to the parameter 'userid'
Find the query in your source code and post the void here as I dont know what emulator you are trying to use.
-
Enthusiast
Re: Item Error
I trying the swift emulator.
This query is in InventoryComponent.cs and UserDataFactory.cs
InventoryComponent.cs:
internal void LoadInventory()
{
DataTable table;
DataTable table2;
this.floorItems.Clear();
this.wallItems.Clear();
this.discs.Clear();
this.InventoryPets.Clear();
using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
dbClient.setQuery("SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid");
dbClient.addParameter("userid", (int)this.UserId);
table = dbClient.getTable();
}
foreach (DataRow row in table.Rows)
{
string str;
uint id = Convert.ToUInt32(row[0]);
uint baseItem = Convert.ToUInt32(row[1]);
if (!DBNull.Value.Equals(row[2]))
{
str = (string)row[2];
}
else
{
str = string.Empty;
}
uint rareid = Convert.ToUInt32(row[3]);
string groupstring = (string)row[4];
UserItem item = new UserItem(id, baseItem, str, rareid, groupstring, (uint)this.UserId);
if (item.GetBaseItem().InteractionType == InteractionType.musicdisc)
{
this.discs.Add(id, item);
}
if (item.isWallItem)
{
this.wallItems.Add(id, item);
}
else
{
this.floorItems.Add(id, item);
}
}
using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
adapter.setQuery("SELECT * FROM user_pets WHERE user_id = " + this.UserId + " AND room_id = 0");
table2 = adapter.getTable();
}
if (table2 != null)
{
foreach (DataRow row in table2.Rows)
{
Pet pet = Catalog.GeneratePetFromRow(row);
this.InventoryPets.Add(pet.PetId, pet);
}
}
}
UserDataFactroy.cs
using (IQueryAdapter adapter = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
{
if (ButterflyEnvironment.useSSO)
{
adapter.setQuery("SELECT * " +
"FROM users " +
"WHERE auth_ticket = @sso ");
}
else
{
adapter.setQuery("SELECT * " +
"FROM users " +
"WHERE auth_ticket = @sso ");
}
adapter.addParameter("sso", sessionTicket);
row = adapter.getRow();
if (row == null)
{
errorCode = 1;
return null;
}
num = Convert.ToUInt32(row["id"]);
if (ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(num) != null)
{
errorCode = 2;
return null;
}
string str = (string) row["lastdailycredits"];
string str2 = DateTime.Today.ToString("MM/dd");
if (str != str2)
{
adapter.runFastQuery(string.Concat(new object[] { "UPDATE users SET daily_respect_points = 3, lastdailycredits = '", str2, "' WHERE id = ", num }));
}
adapter.setQuery("SELECT * FROM user_achievement WHERE userid = " + num);
table = adapter.getTable();
adapter.setQuery("SELECT room_id FROM user_favorites WHERE user_id = " + num);
table2 = adapter.getTable();
adapter.setQuery("SELECT ignore_id FROM user_ignores WHERE user_id = " + num);
table3 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_bots WHERE user_id = " + num + " AND room_id = 0");
dBots = adapter.getTable();
adapter.setQuery("SELECT tag FROM user_tags WHERE user_id = " + num);
table4 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_subscriptions WHERE user_id = " + num);
table5 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_badges WHERE user_id = " + num);
table6 = adapter.getTable();
if (adapter.dbType == DatabaseType.MySQL)
{
adapter.setQuery("SELECT items_users.item_id, items.base_id, items_extradata.data, items.rareid, items.group_data FROM items_users JOIN items ON (items.item_id = items_users.item_id) LEFT JOIN items_extradata ON (items_extradata.item_id = items.item_id) WHERE items_users.user_id = @userid");
}
else
{
adapter.setQuery("EXECUTE getuseritems " + num);
}
table7 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_effects WHERE user_id = " + num);
table8 = adapter.getTable();
adapter.setQuery(string.Concat(new object[] { "SELECT users.id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.sender WHERE messenger_friendships.receiver = ", num, " UNION ALL SELECT users.id,users.username,users.motto,users.look,users.last_online FROM users JOIN messenger_friendships ON users.id = messenger_friendships.receiver WHERE messenger_friendships.sender = ", num, " LIMIT 700" }));
table9 = adapter.getTable();
adapter.setQuery("SELECT messenger_requests.sender,messenger_requests.receiver,users.username FROM users JOIN messenger_requests ON users.id = messenger_requests.sender WHERE messenger_requests.receiver = " + num + " LIMIT 150");
table10 = adapter.getTable();
adapter.setQuery("SELECT rooms.*, room_active.active_users FROM rooms LEFT JOIN room_active ON (room_active.roomid = rooms.id) WHERE owner = @name");
adapter.addParameter("name", (string) row["username"]);
table11 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_pets WHERE user_id = " + num + " AND room_id = 0");
table12 = adapter.getTable();
adapter.setQuery("SELECT * FROM user_quests WHERE user_id = " + num);
table13 = adapter.getTable();
if (ButterflyEnvironment.groupsEnabled)
{
adapter.setQuery("SELECT groups_memberships.*, groups_details.* FROM groups_memberships LEFT JOIN groups_details ON groups_memberships.groupid = groups_details.id WHERE groups_memberships.userid = " + num + " AND groups_memberships.is_current = '1'");
group = adapter.getRow();
}
adapter.setQuery(string.Concat(new object[] { "UPDATE users SET ip_last = @ip WHERE id = ", num, "; UPDATE user_info SET login_timestamp = '", ButterflyEnvironment.GetUnixTimestamp(), "' WHERE user_id = ", num, " ; " }));
adapter.addParameter("ip", ip);
adapter.runQuery();
if (adapter.dbType == DatabaseType.MySQL)
{
adapter.runFastQuery("REPLACE INTO user_online VALUES (" + num + ")");
}
else
{
adapter.runFastQuery(string.Concat(new object[] { "IF NOT EXISTS (SELECT userid FROM user_online WHERE userid = ", num, ") INSERT INTO user_online VALUES (", num, ")" }));
}
adapter.setQuery("SELECT * FROM user_relationships WHERE requester_id = " + num);
table14 = adapter.getTable();
}