【问题标题】:how to use executereader to read one value如何使用executereader读取一个值
【发布时间】:2013-11-30 07:12:34
【问题描述】:

我想从我的表中读取一个 int 值。但我遇到了错误 这是我的代码。请帮我编辑我的代码。

    sqlc = new SqlConnection(ConnectionString);
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = CommandType.Text;
    string username = HttpContext.Current.User.Identity.Name.ToString();

    cmd.CommandText = @"SELECT RemainedCharge "
                              + " FROM aspnet_Users "
                              + " WHERE UserName = @UserName ";
    cmd.Parameters.Add(new SqlParameter("@UserName", username));
    //string RemainedCharge;
    sqlc.Open();

    SqlDataReader rdr = cmd.ExecuteReader();


       // loop over all rows returned by SqlDataReader
       while(rdr.Read())
       {
          RemainedChargeLbl.Text=rdr.GetString(0);
       } 

【问题讨论】:

    标签: c# asp.net sql executereader


    【解决方案1】:

    要读取一个值,您不需要阅读器。使用SqlCommand.ExecuteScalar Method 执行查询并返回查询返回的结果集中第一行的第一列:

    int value = (int)cmd.ExecuteScalcar();
    

    顺便说一句,最好使用sqlc.CreateCommand() 创建命令对象 - 它会创建适当的命令并自动为其分配连接。

    【讨论】:

      【解决方案2】:

      您没有将connection object sqlc 分配给SqlCommand

      添加这个:

       cmd.Connection=sqlc;
      

      完整的解决方案:

      sqlc = new SqlConnection(ConnectionString);
      SqlCommand cmd = new SqlCommand();
      cmd.CommandType = CommandType.Text;
      cmd.Connection=sqlc;
      string username = HttpContext.Current.User.Identity.Name.ToString();
      
      cmd.CommandText = @"SELECT RemainedCharge "
                                + " FROM aspnet_Users "
                                + " WHERE UserName = @UserName ";
      cmd.Parameters.Add(new SqlParameter("@UserName", username));
      //string RemainedCharge;
      sqlc.Open();
      
       RemainedChargeLbl.Text =((int) cmd.ExecuteScalar()).ToString();
      

      【讨论】:

        【解决方案3】:

        使用这个code

          using (var conn = new SqlConnection(SomeConnectionString))
            using (var cmd = conn.CreateCommand())
            {
                conn.Open();
                cmd.CommandText = "SELECT RemainedCharge "
                                          + " FROM aspnet_Users "
                                          + " WHERE UserName = @UserName ";
                cmd.Parameters.Add(new SqlParameter("@UserName", username);
                cmd.Parameters.AddWithValue("@id", index);
                using (var reader = cmd.ExecuteReader())
                {
                    if (reader.Read())
                    {
                        learerLabel.Text = reader.GetString(reader.GetOrdinal("somecolumn"))
                    }
                }
        
        }
        

        【讨论】:

          猜你喜欢
          • 2011-08-13
          • 1970-01-01
          • 2011-12-27
          • 2011-09-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多