Ali2017 2021-11-11 16:54 采纳率: 16.7%
浏览 83
已结题

C#查询sqlserver数据库总显示错误

img

img


img

img

img

img

img

img

img

public static SqlConnection mySql = new SqlConnection();
    static JavaScriptSerializer Js = new JavaScriptSerializer();
    public static bool Connect(string db ,string ip ,string user ,string pw)
    {
        mySql.ConnectionString = "server =LAPTOP-Q2OVQVOQ;database = game1;user = sa1;pwd = 9wen9hua";
        try
        {
            mySql.Open();
            Console.WriteLine("数据库连接成功!");
            return true;
        }catch (Exception ex)
        {
            Console.WriteLine("数据看连接失败!" + ex.ToString());
            return false;
        }
    }
    #region 判定是否为安全字符
    public static bool IsSaftString (string str)
    {
        return !Regex.IsMatch(str, @"[-|;|,|\/|\[|\]|\{|\}|%|@|\*\!|\'|]");
    }
    #endregion
    #region 判断账户是否存在
    public static bool IsAccountExist(string id)
    {
        if (!DbManager .IsSaftString (id))
        {
            return false;
        }
        string s = string.Format("select * from account where convert (nvarchar(255),id)='{0}';", id);
        try
        {
            SqlCommand cmd = new SqlCommand(s, mySql);
            SqlDataReader dataReader = cmd.ExecuteReader();
            bool hasRows = dataReader.HasRows;
            dataReader.Close();
            return hasRows;
        }catch (Exception ex)
        {
            Console.WriteLine("[数据库IsSafetring err]" + ex.ToString());
            return false;
        }
    }
    #endregion
    #region 注册
    public static bool MsgRegister(string id ,string pw)
    {
        if (!DbManager .IsSaftString (id))
        {
            Console.WriteLine("[数据库]Regester fail ,id not safe");
            return false;
        }
        if (!DbManager .IsSaftString (pw))
        {
            Console.WriteLine("[数据库]Regester fail ,pw not safe");
            return false;
        }
        if (IsAccountExist(id ))//这里应当不加判断号
        {
            Console.WriteLine("[数据库]Regester fail ,id exist");
            return false;
        }
        string sql = string.Format("insert into account values ('{0}','{1}')", id, pw);
        try
        {
            SqlCommand cmd = new SqlCommand(sql, mySql);
            cmd.ExecuteNonQuery();
            return true;
        }catch (Exception ex)
        {
            Console.WriteLine("数据库注册失败!Regester fail !" + ex.ToString());
            return false;
        }
    }
    #endregion
    #region 创建游戏对象并将其序列化
    public static bool CreatPlayer(string id)
    {
        if (!DbManager .IsSaftString (id))
        {
            Console.WriteLine("[数据库]CreatPlayer fail id not safe!");
            return false;
        }
        PlayerData playerData = new PlayerData();
        string data = Js.Serialize(playerData);
        string sql = string.Format("insert into player values (convert(nvarchar(255),id) = '{0}',convert(nvarchar(255),data) =  '{1}';", id, data);
        Console.WriteLine(sql);
        Console.WriteLine(Js.Deserialize ( data,typeof (PlayerData)));
        Console.WriteLine("我是测试代码");
        try
        {
            SqlCommand cmd = new SqlCommand(sql ,mySql );
            cmd.ExecuteNonQuery();//用来之星插入更新删除和其他没有返回值的sql明亮 
            return true;
        }catch (Exception ex)
        {
            Console.WriteLine("[数据库]CreatPlayer fail !" + ex.ToString());
            return false;
        }
    }
    #endregion
    #region 检查密码 
    public static bool CheckPassWord(string id ,string pw)
    {
        if (!DbManager.IsSaftString(id))
        {
            Console.WriteLine("[数据库]Regester fail ,id not safe");
            return false;
        }
        if (!DbManager.IsSaftString(pw))
        {
            Console.WriteLine("[数据库]Regester fail ,pw not safe");
            return false;
        }
        string sql = string.Format("select * from account where convert(nvarchar(255),id)='{0}' and convert(nvarchar(255),pw)= '{1}' ; ", id, pw);
        try
        {
            SqlCommand cmd = new SqlCommand(sql, mySql);
            SqlDataReader dataReader = cmd.ExecuteReader();
            bool hasRows = dataReader.HasRows;
            dataReader.Close();
            return hasRows;
        }catch (Exception ex)
        {
            Console.WriteLine("[数据库]CheckPassWord fail !" + ex.ToString());
            return false;
        }
    }
    #endregion
    #region 获取玩家数据
    public static PlayerData GetPlayerData(string id)
    {
        if (!DbManager.IsSaftString(id))
        {
            Console.WriteLine("[数据库]Regester fail ,id not safe");
            return null;
        }
        string sql = string.Format("select * from player where convert(nvarchar(255),id) = '{0}';", id);
        try
        {
            SqlCommand cmd = new SqlCommand(sql, mySql);
            SqlDataReader dataReader = cmd.ExecuteReader();
            if (!dataReader .HasRows)
            {
                dataReader.Close();
                return null;
            }
            dataReader.Read();
            string data = dataReader.GetString(1);
            PlayerData playerData = Js.Deserialize<PlayerData>(data);
            dataReader.Close();
            return playerData;
        }catch (Exception ex)
        {
            Console.WriteLine("[数据库]Get playerdata fail !" + ex.ToString());
            return null;
        }
    }
    #endregion
    #region 更新玩家数据 
    public static bool UpdataPlayData(string id ,PlayerData playerData) {
        string data = Js.Serialize(playerData);
        string sql = string.Format("update player set convert(nvarchar(255),data)='{0}' where convert(nvarchar(255),id) = '{1}';", data, id);
        try
        {
            SqlCommand cmd = new SqlCommand(sql, mySql);
            cmd.ExecuteNonQuery();
            return true;
        }catch (Exception ex)
        {
            Console.WriteLine("[数据库]updatplayerdata fail " + ex.ToString());
            return false;
        }
    }

其他语法应当没有错误 错误只在数据库相关的语句上 如帮忙 不胜感激 如能告知语法问题 另有答谢

  • 写回答

5条回答 默认 最新

  • hamdgem 2021-11-11 20:07
    关注

    改一下语句string sql = string.Format("insert into player(id, data) values ( '{0}', '{1}');", id, data);

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 修改了问题 11月11日
  • 修改了问题 11月11日
  • 展开全部

悬赏问题

  • ¥50 wordpress项目注册报失败刷新后其实是成功状态,请求排查原因
  • ¥20 linxu服务器僵尸进程不释放,代码如何修改?
  • ¥15 pycharm激活不成功
  • ¥40 如果update 一个列名为参数的value
  • ¥15 基于51单片机的水位检测系统设计中LCD1602一直不显示
  • ¥15 OCS2安装出现问题,请大家给点意见
  • ¥15 ros小车启动launch文件报错
  • ¥15 vs2015到期想登陆但是登陆不上
  • ¥15 IPQ5018制作烧录固件,boot运行失败(操作系统-linux)(相关搜索:操作系统)(相关搜索:操作系统)
  • ¥20 icefall在librispeech基础上加入个人数据集