不能重新分配SQL CommandText
本文关键字:SQL CommandText 分配 新分配 不能 | 更新日期: 2023-09-27 18:11:29
为什么我不能这么做?该方法被调用两次,第二次通过if语句是假的,但是分配给CommandText的原始字符串保持不变,即使在我重新分配它之后。
void someMethod(bool yes){
SqlCeCommand foo = new SqlCeCommand();
SqlCeCommand boo = new SqlCeCommand();
if(yes)
{
foo.CommandText = "SELECT * FROM @where";
boo.CommandText = "SELECT * FROM @where2";
foo.Parameters.AddWithValue("@where", Earth);
boo.Parameters.AddWithValue("@where2", Mars);
addToDataBase(foo);
addToDataBase(boo);
}
else{
foo.CommandText = "DELETE * FROM @where";
boo.CommandText = "DELETE * FROM @where2";
foo.Parameters.AddWithValue("@where", Earth);
boo.Parameters.AddWithValue("@where2", Mars);
deleteFromDataBase(foo);
deleteFromDataBase(boo);
}
命令文本不会在else语句之后重新赋值
我可以简单地重组并创建另一个sqlCeCommand,我只是想知道为什么这不起作用。
谢谢。
类型为SqlCeCommand
的命令变量永远不会被重新分配。因为每次调用都创建了一个这种类型的新对象。在此之后,您将根据是否满足您的条件进行分配。如果你想重新赋值,你必须在你的类中声明你的SqlCeCommands
为私有字段