发送布尔参数执行存储过程

时间:2018-06-22 16:23:58

标签: asp.net stored-procedures

我从这样的复选框中检索对或错:

var global = CheckBox1.Checked;

然后我将其作为存储过程的参数发送,例如:

command.Parameters.Add("@global", SqlDbType.Bit).Value = global;

global变量根据选择的结果返回true或false,但是当我使用SqlDbType.Bit时,它将true和false转换为1和0吗?所以我应该以{{1​​}}或boolean之类的存储过程来接收它吗?

存储过程:

varchar

1 个答案:

答案 0 :(得分:1)

在这里我要做一个假设,说存储过程要求您将变量保存为@comando变量中的数据类型位。

在这种情况下,您可以将存储过程保留一点@global,然后在代码隐藏中执行以下操作:

boolean global = CheckBox1.Checked;

command.Parameters.AddWithValue("@global", global);

或者,如果您想维护可以说更好的Add()方法而不是AddWithValue()方法,则您提供的代码应该可以使用。我已经习惯了VB.net,因此语法可能会略有不同,但是任何一种都可以。当您将布尔值保存到参数@global并执行时,如果不使用Add()方法手动对其进行声明,它将被转换为等效位值。

Argument Against Using AddWithValue

Potential Duplicate of This Question