0和1组成的字符串在数据库中的存放问题

Lucky402 2004-10-27 03:16:20
选上寄生虫预防的推荐月 : 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月
□ □ □ □ □ □ □ □ □ □ □ □
要求在数据库中用一个字段存放它们的状态。在这个字段中是用0和1字符组成的字符串来表示的。字符串的第一位对应1月状态,第一位为0时代表1月下面的那个复选框没选,为1时代表1月下面的那个复选框选上了。字符串的第二位对应2月状态,第二位为0时代表2月下面的那个复选框没选,为1时代表2月下面的那个复选框选上了。依此类推,请问怎样把状态存入数据库中,又怎样从数据库中读出呢

整个意思也就是:怎样根据0和1组成的字符串在字段中的存放状态来判断一组复选框的值,反过来怎样根据一组复选框的值后用0和1组成的字符串存入一个字段中
...全文
235 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
51365133 2004-10-31
  • 打赏
  • 举报
回复
用字符串好,至少在最后读出来在返回给控件的时候剩了不少的力气的,



根据每位判断,组合,生成一个串, 就行了,读出来对应就是了!!
JoAiron 2004-10-31
  • 打赏
  • 举报
回复
存的时候应该好解决吧。从数据库中取出来的时候是一个串。这样的话你可以定义一个12位的数组。用Split()函数来分割这个字符串,详细的可以看MSDN。这样就把一个串分成12个数了。我没测试的环境不过
Dim strVrt, strtmpone() As String
strtmpone=Split(strVrt,"")
应该可以实现你的要求
jam021 2004-10-27
  • 打赏
  • 举报
回复
关注,帮你顶!
tztz520 2004-10-27
  • 打赏
  • 举报
回复
其实就是将12个check的值组合成一个字符串存到数据库里,要显示的时候再将数据库中的这个字符串分开附给这12个check.
northwolves 2004-10-27
  • 打赏
  • 举报
回复
一共2048种情况,快慢不是很明显吧
of123 2004-10-27
  • 打赏
  • 举报
回复
不必用字符串,处理起来慢。直接用 Integer 就可以。
of123 2004-10-27
  • 打赏
  • 举报
回复
不必用字符串,处理起来慢。直接用 Integer 就可以。
of123 2004-10-27
  • 打赏
  • 举报
回复
读值:
a = rs!options
for i = 0 to 11
check1(i) = a And 2 ^ i
Next i

取值:
a = 0
for i = 0 to 11
a = a + check1(i) * 2 ^ i
Next i
还想懒够 2004-10-27
  • 打赏
  • 举报
回复
010001000100

zdcwin 2004-10-27
  • 打赏
  • 举报
回复
直接存为一个以0和1组成的字符串,比如说所有单数月都选中,那么存为:
101010101010,
存入时就按字符串存入即可。
读取时,先按字符串读取,然后进行分析:
代码如下:
'检查月份是否选中的代码,选中为1,否则为0
Private Function CheckMonth(strMonthData As String, intIndex As Integer) As Integer

If Mid(strMonthData, intIndex, 1) = "1" Then
CheckMonth = 1
Else
CheckMonth = 0
End If

End Function

'给checkbox打上勾的代码,需要添加12个checkbox控件,使用控件数组(0-11)
Dim i As Integer

For i = 1 To 12

Check1(i - 1).Value = CheckMonth(Text1.Text, i)

Next i
反过来获取checkbox状态的代码,和这个差不多,我就不写了。
victorycyz 2004-10-27
  • 打赏
  • 举报
回复
直接存月份就可以了。如选中3月和6 月,则存为:“3,6”。这样前台处理也没有什么困难。

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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