MySQLDriverCS 错误:错误的查询。您的 SQL 语法有错误;

问题描述 投票:0回答:1

        public bool InsertGuildShare(string RoleName, int RoleID, double Share, int GuildID, int Rank, int FamilyID, string FamilyName)
        {
            MySQLConnection conn = null;

            try
            {

                conn = this._Database.DBConns.PopDBConnection();

                string cmdText = "Insert into t_guildshare(RoleID,Share,GuildID,RoleName,Rank,FamilyID,FamilyName) VALUES (" + RoleID + "," + Share + "," + GuildID + ",`" + RoleName + "`," + Rank + "," + FamilyID + ",`" + FamilyName + "`)";

                MySQLCommand cmd = new MySQLCommand(cmdText, conn);

                cmd.ExecuteNonQuery();

                GameDBManager.SystemServerSQLEvents.AddEvent(string.Format("+SQL: {0}", cmdText), EventLevels.Important);

                cmd.Dispose();
                cmd = null;

                return true;
            }
            catch (Exception ex)
            {
                LogManager.WriteLog(LogTypes.Guild, "BUG :" + ex.ToString());

                return false;
            }
            finally
            {
                if (null != conn)
                {
                    this._Database.DBConns.PushDBConnection(conn);
                }
            }
        }
       

错误消息文件夹

2024-05-06 00:00:01 BUG :MySQLDriverCS.MySQLException (0x80004005): MySQLDriverCS 异常: MySQLDriverCS 错误: 错误的查询。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在 'Rank,FamilyID,FamilyName) VALUES 附近使用的正确语法 (202591,2.58,100035,

A_The_LamSao
,10,2,
NoMerc' at line 1 Insert into t_guildshare(RoleID,Share,GuildID,RoleName,Rank,FamilyID,FamilyName) VALUES (202591,2.58,100035,
A_The_LamSao
,10,2,
NoMercy`) 在 MySQLDriverCS.DirectStatement.ExecuteNonQuery() 在 GameDBServer.Logic.GuildLogic.GuildManager.InsertGuildShare(String RoleName, Int32 RoleID, Double Share, Int32 GuildID, Int32 Rank, Int32 FamilyID, String FamilyName) 位于 C:\Users\ADMIN\Desktop\KT\SeverFile\Server-khac\ s1\GameDBServer\GameDBServer\Logic\GuildLogic\GuildManager.cs:第 621 行

非常感谢

c# mysql
1个回答
0
投票

反引号用于表名或列名。如果您将值传递给 value(x,x,x) 中的参数及其字符串文字,请使用单引号,例如 'string value'

 public bool InsertGuildShare(string RoleName, int RoleID, double Share, int GuildID, int Rank, int FamilyID, string FamilyName)
            {
                MySQLConnection conn = null;
    
                try
                {
    
                    conn = this._Database.DBConns.PopDBConnection();
    
                    string cmdText = "Insert into t_guildshare(RoleID,Share,GuildID,RoleName,Rank,FamilyID,FamilyName) VALUES (" + RoleID + "," + Share + "," + GuildID + ",'" + RoleName + "'," + Rank + "," + FamilyID + ",'" + FamilyName + "')";
    
                    MySQLCommand cmd = new MySQLCommand(cmdText, conn);
    
                    cmd.ExecuteNonQuery();
    
                    GameDBManager.SystemServerSQLEvents.AddEvent(string.Format("+SQL: {0}", cmdText), EventLevels.Important);
    
                    cmd.Dispose();
                    cmd = null;
    
                    return true;
                }
                catch (Exception ex)
                {
                    LogManager.WriteLog(LogTypes.Guild, "BUG :" + ex.ToString());
    
                    return false;
                }
                finally
                {
                    if (null != conn)
                    {
                        this._Database.DBConns.PushDBConnection(conn);
                    }
                }
            }
© www.soinside.com 2019 - 2024. All rights reserved.