这是SSMS(SQL Server Management Studio)对数据类型校验引起的,在SSMS里边编辑表中记录时,SSMS先要校验一下输入是否有误,bit类型对应net中的boolean类型,而boolean类型有效值是true、false、null,直接输入0、1肯定通不过校验的。而如果执行语句INSERT的话,不需要经过SSMS的数据类型校验,SQL Server会将0、1隐式转换为false和true,执行INSERT语句是能正常插入记录的,用INSERT语句向bit类型列插入数据的时候,大于0的值都会被隐式转换为true。而实际内部存储bit类型列,只用1个bit来存储,也就是1个字节可以存储8个bit列。
错误(警告)信息写的很清楚
switch(c==d) //c==d的结果只有0或1,不要用switch的,明显的错
另外一个错是
int c,d,e=50,f=100,g=80,h=10,i=100,j=400,k=200,l=500,m=400,n=600,o=1000,p=300,q=0,r=800,s=2,t=1,u=700,v=1,w=2,s=0;
里面的s=2,s=0冲突了
另外,程序结构问题多了
如循环你用
while(q=s);
你对=或==这个基础的C语法没有理解
且程序中的多个
switch(xxx=yyy)
没有中中的=没有意义
以上就是关于sql server 2005数据库表bit字段问题全部的内容,包括:sql server 2005数据库表bit字段问题、C#提示"在当前范围或上下文中无法解析数据库表,请确保所有引用的变量都在范围内,、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)