我的表中有一个可以存储0或1的字段。
在我的网页中,我声明了
<label>Do we have your permission to send your cell a text</label>
<div>
<label>
<input type="radio" name="ctrluuSendSMS" id="ctrluuSendSMS" value="1">Yes</label>
</div>
<div>
<label>
<input type="radio" name="ctrluuSendSMS" id="ctrluuSendSMS" value="0">No</label>
</div>
当我提交表单时,我收到以下错误:
String was not recognized as a valid Boolean
请帮我说明如何声明以及如何存储到DB
答案 0 :(得分:0)
我相信您应该尝试将位值作为int传递给数据库,而不是字符串(在代码中转换然后作为整数参数传递给StoredProc / ORM)。
(正如alroc评论的那样,我们可以看到sql代码吗?)
我假设你的桌子看起来像
Create Table MyTable
(
SomePK int not null identity(1,1),
MyBitValue bit
)
所以你的插入/更新语句看起来像
Declare @MyParam int = 1 -- where 1(or 0) is an integer, not a string
Declare @MyParam2 bit = 1
Insert Into MyTable(MyBitValue)Values(@MyParam)
Insert Into MyTable(MyBitValue)Values(@MyParam2)
Select * From MyTable
Set @MyParam = 0
Set @MyParam2 = 0
Update MyTable Set MyBitValue = @MyParam Where SomePK = 1
Update MyTable Set MyBitValue = @MyParam2 Where SomePK = 2
Select * from MyTable
修改:我已经更新了我的示例以显示同时使用int和位
答案 1 :(得分:0)
使用“True”和“False”而不是“1”和“0”作为Input元素的值属性。
<label>Do we have your permission to send your cell a text</label>
<div>
<label>
<input type="radio" name="ctrluuSendSMS" id="ctrluuSendSMS" value="True">Yes</label>
</div>
<div>
<label>
<input type="radio" name="ctrluuSendSMS" id="ctrluuSendSMS" value="False">No</label>
</div>
数字字符串在转换为布尔值
之前必须转换为数值Convert.ToBoolean(Convert.ToByte("1")) = True
但“True”和“False”会直接转换。
Convert.ToBoolean("True") = True
http://msdn.microsoft.com/en-us/library/wh2c31dd(v=vs.110).aspx