我晕得很!应该怎么办呀?

cxdone 2006-03-22 08:48:11
我在C#中写了一个类,然后用SqlConnection对象作参数,我不知道那个SqlConnection是指针,还是指针的指针,反正乱得很。
private SqlConnection MyConn;
test(MyConn);
public void test(SqlConnection Connection){
我想Connection在这里应该算一个局部变量吧,我说把它
Connection.Dispose();
Connection=null;
}
后来逐步执行时,跟踪发现,当我将Connection的Dispose方法后,外面的MyConn也关闭了,但是还是对像,不像函数内部的Connection已经没有定义。我觉得真是不好理解,我想要做成像SqlDataAdapter一样的效果,new SqlDataAdapter(selectString,selectConnection)中selectConnection传入时是什么状态的,执行完后不变(在外面是打开,进入里面出来后还是打开)。我该如何处理?同时要函数内不会消耗连接池,也就是定义连接对象后就要马上关闭、并注销。
...全文
89 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxdone 2006-03-23
  • 打赏
  • 举报
回复
哦,基本上清楚了,多谢大家了
但是我如是以
private string MyConn;
test(new SqlConnection(MyConn));
public void test(SqlConnection Connection){
我想Connection在这里应该算一个局部变量吧,我说把它
Connection.Dispose();
Connection=null;
}
这个时候我是不是把连接池关闭了。
Jonix 2006-03-23
  • 打赏
  • 举报
回复
在Java和C#中,除了基本对象以外(int之类),在参数中都是引用调用的,所以你的SqlConnection在内存中实际只有一个对象.
sarcophile 2006-03-23
  • 打赏
  • 举报
回复
在你的例子中,你就当是指针吧,没错的
应该相当于如下C++:(好久没写了,未免生涩,有错勿怪)

private SqlConnection* MyConn;
test(MyConn);
public void test(SqlConnection* Connection){
我想Connection在这里应该算一个局部变量吧,我说把它 // connection 虽是一个局部变量,但他本身是一个指针,与外面的myConn指向同一个对象
Connection-〉Dispose(); // 当然外面的myConn也关闭了
Connection=null;
}
RUN_ 2006-03-23
  • 打赏
  • 举报
回复
up一下,表示同情
cxdone 2006-03-23
  • 打赏
  • 举报
回复
函数内部新建的局部Connection在函数结束的时候会自动回收,连接也会注销的???

如果是传的指针的话,是不是说函数内部新建的局部Connection只是一个映射,实质上是同一个连接,所以对任何一个进行Close()调用都将关闭连接。
computerclass 2006-03-22
  • 打赏
  • 举报
回复
Sql我还没看,学习一下
qwertxp 2006-03-22
  • 打赏
  • 举报
回复
c#只有值类型(放在堆栈中)和引用类型(放在堆中)。
引用可以认为是指针,类的对象就是引用类型的。
sfanpu 2006-03-22
  • 打赏
  • 举报
回复
我现在不晕,但是很郁闷,同情一下,哎
raulredondo 2006-03-22
  • 打赏
  • 举报
回复
c#里面都是句柄,你可以认为这个就是指针
你的Connection.Dispose();操作的就是private SqlConnection MyConn,不是局部变量

selectConnection别关就是了,什么也不要做
函数内部新建的局部Connection在函数结束的时候会自动回收,连接也会注销的
califord 2006-03-22
  • 打赏
  • 举报
回复
不清楚哟,现在我只懂一点点哟

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧