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日
  • 展开全部

悬赏问题

  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错