public static UserTest GetUserByLoginName(string name)
        {
            string sql = "SELECT * FROM nt_user WHERE name = @name";            try
            {
                SqlDataReader reader = DBconn.GetReader(sql, new SqlParameter("@name", name));
                if (reader.Read())
                {
                    UserTest user = new UserTest();                    user.Id = (int)reader["id"];
                    user.Name = (string)reader["name"];
                    user.Password= (string)reader["password"];
 
                    reader.Close();
                    return user;
                }
                else
                {
                    reader.Close();
                    return null;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                return null;
            }
        }我查寻不到值,是不是不能这样用????急
求一条查询语句

解决方案 »

  1.   

    @name这样形式在mysql里面是用户变量,估计是不允许你这样传进去
    修改成 v_name看看
      

  2.   

    首先测试你的表中有数据
    string sql = "SELECT * FROM nt_user WHERE name = @name"; 能查到数据
    第二
    string sql = "SELECT id,name,password FROM nt_user WHERE name = @name";            
                  while  (reader.Read()) 
    第三 你的传参数语句对不对 测试下
     SqlDataReader reader = DBconn.GetReader(sql, new SqlParameter("@name", name)); 
      

  3.   

    {MySql.Data.MySqlClient.MySqlException: Host '7LIT-PC115' is not allowed to connect to this MySQL server   在 MySql.Data.MySqlClient.PacketReader.CheckForError()
       在 MySql.Data.MySqlClient.PacketReader.ReadHeader()
       在 MySql.Data.MySqlClient.PacketReader.OpenPacket()
       在 MySql.Data.MySqlClient.NativeDriver.Open()
       在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionString settings)
       在 MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection()
       在 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection()
       在 MySql.Data.MySqlClient.MySqlPool.GetConnection()
       在 MySql.Data.MySqlClient.MySqlPoolManager.GetConnection(MySqlConnectionString settings)
       在 MySql.Data.MySqlClient.MySqlConnection.Open()
       在 DAL.DBconn.get_Conn() 位置 E:\GeZiWang\WebSite\DAL\DBconn.cs:行号 31
       在 DAL.DBconn.GetReader(String sql, SqlParameter[] values) 位置 E:\GeZiWang\WebSite\DAL\DBconn.cs:行号 96
       在 DAL.UserTestService.GetUserByLoginName(String name) 位置 E:\GeZiWang\WebSite\DAL\UserTestService.cs:行号 56}
    ???这是什么错???如何解决...
      

  4.   

    grant all on *.* to '用户名'@'%';
      

  5.   

                string sql = "SELECT * FROM nt_user WHERE name = @name";             try 
                { 
                    SqlDataReader reader = DBconn.GetReader(sql, new SqlParameter("@name", name)); 
    reader 没有值....不知哪里出错,数据库链接显示已经打开...(测试也通过了)
      

  6.   

    DBconn.GetReader()是什么,应该是你自己定义的方法吧。你不贴出代码,估计猜不出来。
      

  7.   

               string sql = "SELECT * FROM nt_User WHERE name = @name";            try
                {
                    MySqlDataReader reader = DBconn.GetReader(sql, new MySqlParameter("@name",name));
                    if (reader.Read())
                    {
      

  8.   

    string sql = "SELECT * FROM nt_user WHERE name = @name"; 
    改成
    string sql = "SELECT * FROM nt_user WHERE name = ?name"; 
      

  9.   

            public static MySqlDataReader GetReader(string sql, params MySqlParameter[] values)
            {
                MySqlCommand cmd = new MySqlCommand(sql, Conn);
                cmd.Parameters.AddRange(values);
                MySqlDataReader reader = cmd.ExecuteReader();
                return reader;
            }不好意思....请指教
      

  10.   

    ADO.NET中的参数
    SQL Server中用 @
    MySQL中用 ?
    Oracel中用 :
    SQLite中用: @