我这句哪里错了?

cs78799662 2009-03-17 09:46:56

new SqlParameter("@Win",DWin.Text.Equals("") ? DWin.Text : Convert.ToBoolean(DWin.Text)),

错误提示:无法确定条件表达式的类型 "String" 转换 "bool" 没有隐式转换
出问题的语句: Convert.ToBoolean(DWin.Text)),
...全文
295 43 打赏 收藏 转发到动态 举报
写回复
用AI写文章
43 条回复
切换为时间正序
请发表友善的回复…
发表回复
cs78799662 2009-03-25
  • 打赏
  • 举报
回复
谢谢大家我已经解决了,在这里用int值
在数据库中做转换就行了
xutao888 2009-03-18
  • 打赏
  • 举报
回复
楼主太牛叉了,我是没看懂代码
阿非 2009-03-18
  • 打赏
  • 举报
回复

bool b=false;

new SqlParameter("@Win",bool.TryParse(DWin.Text, out b) ? DWin.Text : "");

这是传递string 类型

or

bool b=false;

new SqlParameter("@Win",bool.TryParse(DWin.Text, out b) ? b: b);

这是传递bool类型
hangang7403 2009-03-18
  • 打赏
  • 举报
回复
up
leo0371 2009-03-18
  • 打赏
  • 举报
回复
按你这样写,DWin.Text.Equals("")
和 Convert.ToBoolean(DWin.Text)类型应该是一样的
skiey01 2009-03-18
  • 打赏
  • 举报
回复
好复杂~什么时候自己才能有如此技术~~
还是工具比较适合我
hhxxcj 2009-03-18
  • 打赏
  • 举报
回复
把它拿出单独赋个一个变量这样就能有你想要的结果了
bool bo=DWin.Text.Equals("") ? false: Convert.ToBoolean(DWin.Text)
先判断一下赋值
string str=;
new SqlParameter("@Win",str),
这样就行了
liuyeede 2009-03-18
  • 打赏
  • 举报
回复
new SqlParameter()构造函数中第二个参数因该是SqlDbType.XXXX,而类似这样的表达式DWin.Text.Equals("") ? false: Convert.ToBoolean(DWin.Text)生成的是什么?只能是一个布尔值。
悔说话的哑巴 2009-03-18
  • 打赏
  • 举报
回复
new SqlParameter("@Win",DWin.Text.Equals("") ? false: Convert.ToBoolean(DWin.Text)),
zzxap 2009-03-18
  • 打赏
  • 举报
回复
DWin.Text : Convert.ToBoolean(DWin.Text) 这两个类型不同啊
dwlwm_cherry 2009-03-18
  • 打赏
  • 举报
回复
DWin.Text的值: System.Boolean.TrueString 或者 System.Boolean.FalseString 的值的 System.String。
其它的出现异常
wangchao1982 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goghuaqiao 的回复:]
new SqlParameter("@Win",DWin.Text.Equals("") ? DWin.Text : Convert.ToBoolean(DWin.Text)),
[/Quote]
首先来讲,三木运算符(?:)的返回值的类型必须相同。所以,你一个返回值的类型是string,另一个是bool。这是其一
其次是,C#中bool值的转换的特殊性。在C#中,bool值只有true和false两种情况,1 0或空字符都不能被转换成bool类型数据的相应值。也就是说Convert.ToBoolean的参数只能是true/false(对字符串进行二进制解析后的数组也可以,大小写都行)
所以,你的这一行代码有两个常识性的错误,建议你还是多看看C#基础吧,C#高级编程第五版很不错的。呵呵
weizijia 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 cs78799662 的回复:]
new SqlParameter("@Win",DWin.Text.Equals("") ? DWin.Text : Convert.ToBoolean(DWin.Text)),

如果 DWin是空值 就直接传空值到存储过程
如果有值就转换成BOOL到存储过程中去
[/Quote]
传空,用null欧不

new SqlParameter("@Win",DWin.Text.Equals("") ? null: Convert.ToBoolean(DWin.Text)),


--另外volnet大哥啊你还能在复杂点不
KENLIMYTH 2009-03-18
  • 打赏
  • 举报
回复
最好别这么写...
黑哥 2009-03-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 goghuaqiao 的回复:]
new SqlParameter("@Win",DWin.Text.Equals("") ? DWin.Text : Convert.ToBoolean(DWin.Text)),

还可以这样写啊 你太叼啦
到底@Win 这个参数是bool还是string
[/Quote]


那确实,,太叼了!
cwmwss 2009-03-18
  • 打赏
  • 举报
回复
楼主写得好乱啊
erytbc 2009-03-18
  • 打赏
  • 举报
回复
确实好像类型不一致
编程有钱人了 2009-03-18
  • 打赏
  • 举报
回复
new SqlParameter("@Win",DWin.Text==string.Empty ? DWin.Text : Convert.ToBoolean(DWin.Text)),
volnet 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 volnet 的回复:]
引用 22 楼 volnet 的回复:
引用 21 楼 volnet 的回复:
new SqlParameter("@Win",DWin.Text.Equals("") ? DWin.Text : Convert.ToBoolean(DWin.Text)),

new SqlParameter("@Win",DWin == null? null:(DWin.Text.Equals("") ? (DWin.Text.ToLower() == "true"?true:false) : Convert.ToBoolean(DWin.Text))),

这么写应该没问题了,不过建议移到外面去比较清晰

自己纠错一下:
new SqlParameter("@Win",DWin == null? …
[/Quote]
自己再再纠错一下:
new SqlParameter("@Win",DWin == null? null:(DWin.Text.Equals("") ? DWin.Text.ToLower() == "true"?true:false)),
weiloe 2009-03-17
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 cs78799662 的回复:]
我这是多条件搜索的字段!
[/Quote]
对啊 两边的类型都不一志 搞毛啊
加载更多回复(23)

62,072

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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