本帖最后由 yison1128 于 2010-04-15 20:33:15 编辑

解决方案 »

  1.   

    connection 小写是变量名
    大写是属性名
    大写是对小写的封装  cmd.Connection = Connection; 这里等于大写小写都可以
      

  2.   

    执行 get 访问器相当于读取字段的值
    打开连接
      

  3.   

    一个是字段,一个是属性,这里的Connection 就是数据库的连接字符串!
      

  4.   


    那为什么你最后还要一个 return 返回啊 ?
    字段和属性还要有返回的 吗 ?貌似不要吧
      

  5.   

    connection是字段,
    Connection是属性
    用get set封装
      

  6.   

    public class DBHelper
        {
            private static SqlConnection connection;//这个表示定义一个SqlConnection类型的变量,没多大作用,据说是为了封装类的属性.也就是大写的那个.
            public static SqlConnection Connection //这个可以说是一个属性名,是为了类的封装而定义的,是为了给外部程序调用的,请注意它的访问类型是public,而小写的那个是private.     
    {
                get
                {
                    string strconn = "Data Source=LENOVO-AD549D6D;Initial Catalog=xindouWeb;Integrated Security=True";
                    if (connection == null)
                    {
                        connection = new SqlConnection(strconn);
                        connection.Open();
                    }
                    else if(connection.State==System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if(connection.State==System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
        public static SqlDataReader ExecuteReader(string spName, CommandType cmdType)
            {
                SqlCommand cmd = new SqlCommand();
                cmd.CommandText = spName;
                cmd.CommandType = cmdType;
                cmd.Connection = Connection;  //这里这样用是因为,cmd.Connection中的Connection是cmd的一个属性.
                try
                {
                    SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    return reader;
                }
                catch
                {
                    connection.Close();
                    throw;
                }
            }
        }嘻嘻,1楼的朋友最后一句回答错了.我把答案写在注释里面了
      

  7.   


    关于get,set访问器请参考:C#中get和set访问器的解释
      

  8.   

    connection  是声明类型为SqlConnection 的字段Connection  只封装了get的属性   通过它获取连接cmd.Connection = Connection;  我认为必须为大些   要调用get{}
      

  9.   


    汗,都没看我的答案,都说了cmd.Connection中的Connection是cmd的一个属性.不是自己定义的那个,如果是自己定义的那个,大小写都行.
      

  10.   

    这个connection和其他类的属性定义是一样的啊。。public Program
    {
    string name
    public string Name
    {
    get
    {
    return this.name;
    }
    }}
    上边的Connetion和这种类型的不是一样的么?
      

  11.   

    大小写都行的,只不过如果是在外部类即不是dbhelper类的时候,只能调用大写的,因为小写定义成私有的,访问不到
      

  12.   

    小写那个是私有的,并且小写的只是一个字段名,在通过大写Connection属性初始化之前,引用也是无意义的通过了Connection才给他申请了一个connection
      

  13.   

    嗯,没错,没调用Connection时,小写的那个是空的