出鬼了,现在窗体调用。数据库里:border_border_x = 50;的print_set_class new_set = new print_set_class();messagebox.show(new_set.b_x.tostring()); 为什么等于0??
  public class print_set_class
    {
         m_sql_conn conn = new m_sql_conn();
        
        public int set_border_x;        public int b_x
        {
            get
            {
                return set_border_x;
            }
            set
            {
                set_border_x = value;
            }
        }
 
        public void print_set()
        {
            string print_set_read = "select top 1 * from set_print order by fp_id desc";
            SqlConnection print_conn = new SqlConnection(conn.sql_conn());
            SqlCommand command = new SqlCommand(print_set_read, print_conn);
            try
            {
                print_conn.Open();
            }
            catch (System.Exception sqler)
            {
                MessageBox.Show("数据库连接错误!", sqler.Message);
                return;
            }
            SqlDataReader rs = command.ExecuteReader();
            if (rs.Read())
            {
                set_border_x = Convert.ToInt32(rs["border_border_x"]);//messagebox.show(set_border_x.b_x.tostring()); 这里还是50呢!!!              }
            rs.Close();
            print_conn.Close();
        }    
    }

解决方案 »

  1.   

    你都没有调用print_set,当然是0!print_set_class new_set = new print_set_class();
    new_set.print_set();
    messagebox.show(new_set.b_x.tostring()); 
      

  2.   

    不是零才怪
    你又没有在构造函数中调用 print_set()这个方法来读数据,凭什么new()之后就是50?
      

  3.   

    C#我就刚看到数组,但是在
    C#教程第一章<命名空间>
    必须在同一命名空间内,
    使用public类型才会共享同一个值.是不是这样的?难道我又记错了?