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

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条回答

      报告相同问题?

      相关推荐 更多相似问题

      问题事件

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

      悬赏问题

      • ¥20 51单片机实训实验报告
      • ¥15 C# 循环读写数据中途突然变慢
      • ¥15 用Java实现双端队列
      • ¥150 ID3决策树实现分类
      • ¥15 multisim10安装后,找不到NI License Manager的程序来安装许可证
      • ¥15 C++银行卡系统 Help!
      • ¥15 R语言数据分析的相关问题
      • ¥15 模型导入SP后贴图纹理只有一个,拆了四张UV的,怎么解决?
      • ¥15 检索带order by 非常慢
      • ¥20 python 爬虫 token 加密方式