首页 新闻 会员 周边

C# 同一个string 变量多次赋值。

0
悬赏园豆:5 [已解决问题] 解决于 2015-05-20 11:48

最近遇到一个问题,在写SQL 文的时候,

string strSQL= "SELECT ";

strSQL += " ";

......

执行

 

查询语句执行完以后

继续查询,

strSQL="SELECT ";

strSQL += " ";

......

执行

等,多个查询。

同一个方法里边,多个查询的SQL变量名都叫strSQL,这样写的话,各查询语句会不会有影响?求指导。

Andy·Li的主页 Andy·Li | 初学一级 | 园豆:185
提问于:2015-05-19 13:48
< >
分享
最佳答案
1

每次改strSQL之前,你都执行过了,那就没影响了。你要保证你的执行是同步的,而且不是延时执行。

收获园豆:3
幻天芒 | 高人七级 |园豆:37175 | 2015-05-19 16:04
其他回答(9)
0

不会吧 

wangYiYi | 园豆:13 (初学一级) | 2015-05-19 13:50
0

在第2次 strSQL="SELECT "; 时,strSQL已经被重新赋值,对后面的查询语句不会有影响。

dudu | 园豆:30994 (高人七级) | 2015-05-19 13:53
0

会有影响,不信的话,你可以在调试模式下单步执行观察 strSQL 的值。

Launcher | 园豆:45045 (高人七级) | 2015-05-19 14:41
0

不会吧,string是不可变的,你每次赋值,哪怕是+=, 都会在内存中开辟新空间,将新值赋值到新的对象中

铁手三郎 | 园豆:311 (菜鸟二级) | 2015-05-19 15:31
0

不会的,每次string有变化,都是重新开辟空间重新将strSQL指向新的位置,而原来的数据就会因为没有指针指向导致被GC回收。因为频繁的改变strSQL会不停的重新分配空间,所以最好使用StringBuilder这个类来操作SQL语句,具体语法自己搜一下

代码小兵的成长 | 园豆:303 (菜鸟二级) | 2015-05-19 15:48
1

在每一次的 strSQL="SELECT "; 时,strSQL会重新赋值,频繁的改变strSQL会不停的重新分配空间,要保证你的执行是同步的,而且不是异步执行就不会有问题。最好使用StringBuilder来Append SQL。

收获园豆:2
雨之秋水 | 园豆:649 (小虾三级) | 2015-05-19 16:39
0

楼主你好,每一次给strSQL=“SELECT ”时,会重新赋值,最后你执行的结果肯定是你想要的。

但是我不建议你这么做,如果你每次执行返回结果不一样,我建议你用不同的变量去定义你执行的SQL语句,方便以后做更改。

想要飞 | 园豆:11 (初学一级) | 2015-05-19 16:57
0

不会的。 放心使用吧。 每一次给strSQL时,会重新赋值,赋值后肯定是你想要的。

请叫我头头哥 | 园豆:9382 (大侠五级) | 2015-05-19 22:35
0

一般不建议这样做,建议使用StringBuilder来Append SQL语句。

mczxmin | 园豆:196 (初学一级) | 2015-05-20 11:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册