http://www.cnblogs.com/flora_asp_net/archive/2009/08/07/1541530.html
这个帖子里,数据库访问层(DAL)中的代码:
private static SqlConnection connection;
public static SqlConnection Connection //连接数据库,并打开连接
{
get
{
string connectionString = "server=.\\sql2005;database=TeachSys;uid=sa;pwd=sa2005";
if (connection == null)
{
connection = new SqlConnection(connectionString);
Connection.Open();
}
return connection;
}
}
它判断connection变量(小写)如果为null则实例化数据库连接,并由Connection(大写)变量来打开连接,我的疑问是,connection变量和Connection变量是如何发生联系的?应该由connection变量(小写)来实现Open这个方法啊,而且我改成connection.Open()也能够编译通过,这我就搞不懂了,请大家解惑。
这个帖子里,数据库访问层(DAL)中的代码:
private static SqlConnection connection;
public static SqlConnection Connection //连接数据库,并打开连接
{
get
{
string connectionString = "server=.\\sql2005;database=TeachSys;uid=sa;pwd=sa2005";
if (connection == null)
{
connection = new SqlConnection(connectionString);
Connection.Open();
}
return connection;
}
}
它判断connection变量(小写)如果为null则实例化数据库连接,并由Connection(大写)变量来打开连接,我的疑问是,connection变量和Connection变量是如何发生联系的?应该由connection变量(小写)来实现Open这个方法啊,而且我改成connection.Open()也能够编译通过,这我就搞不懂了,请大家解惑。
private int id; public int Id
{
get { return id; }
set { id = value; }
}注意ID的大小写!!
仔细看一下运行过程就明白了private static SqlConnection connection;
public static SqlConnection Connection //连接数据库,并打开连接
{
get//Connection属性获取方法
{
string connectionString= "server=.\\sql2005;database=TeachSys;uid=sa;pwd=sa2005";
if (connection == null)
{
//第一次运行,即connection字段为null
connection = new SqlConnection(connectionString);//connection字段赋值//此时调用Connection属性,则同样会调用Connection属性的get方法,不同的是,和第一次不同,connection字段已经赋值,所以不会进入if语句范围,直接返回connection字段,所以,这里和直接调用字段是一样的
Connection.Open();
}
return connection;
}
}