字符串格式化问题,很诡异

herokay 2015-02-04 10:22:46
sqltxt = String.Format("INSERT INTO mc_user (userid, Name, Password, power, Enabled) VALUES('{0}','{1}','{2}',{3},{4})", dwEnrollNumber, name, dwPassword, dwPrivilege, dwEnabled)

Debug.Print(sqltxt)
Debug.Print(dwEnrollNumber)
Debug.Print(dwName)
Debug.Print(dwPassword)
Debug.Print(dwPrivilege)
Debug.Print(dwEnabled)

Debug输出如下:
INSERT INTO mc_user (userid, Name, Password, power, Enabled) VALUES('10201','管理员10201
管理员159357
3
True
单个输出没问题,为什么格式化却输出一半内容,并且dwName.length也没无返回
...全文
367 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
WM_JAWIN 2015-02-06
  • 打赏
  • 举报
回复
你那字符串从那里来的?通过Win32API取得的么?如果那估计是你的取返回串的代码有问题 按你现在这个搞法,只取\x00字符串前面的应该就是对的
var i= dwName.IndexOf('\x0');
if(i!=-1)
  dwName=dwName.Substring(0,i);
herokay 2015-02-06
  • 打赏
  • 举报
回复
If dwName = "" Then
                        dwName = ""
                    Else
                        dwName = dwName.Substring(0, Len(dwName) - dwName.IndexOf(Chr(0)))
                    End If
问题终于解决了,附上解决方案,谢谢大家都帮助
於黾 2015-02-05
  • 打赏
  • 举报
回复
要么把你debug输出的内容复制出来贴上 要么放图 不要手打个输出字符串来糊弄大家 这很明显程序不可能输出这个东西
software_artisan 2015-02-05
  • 打赏
  • 举报
回复
sqltext里面的管理员后面的单引号呢?
herokay 2015-02-05
  • 打赏
  • 举报
回复
管理员后边的这几个特殊字符咋处理掉
herokay 2015-02-05
  • 打赏
  • 举报
回复
dwName = dwName.Replace("\x0", String.Empty) 加上还是没解决
WM_JAWIN 2015-02-05
  • 打赏
  • 举报
回复
你的dwName中包括字符 \x00 ,这个字符通常用于表示字符串结整 dwName=dwName.replace("\x0“,string.Empty); 这样折腾再格式化
於黾 2015-02-05
  • 打赏
  • 举报
回复
如果你始终说不出dwName里到底存了什么 只说正常 那么别人也无从判断为什么会这样,只能靠各种猜
herokay 2015-02-05
  • 打赏
  • 举报
回复
msgbox输出也是一样被截断
於黾 2015-02-05
  • 打赏
  • 举报
回复
在debug断点调试看字符串的时候,太长会被截断,后面的不会显示 估计这也是类似的问题 太长了就换个方式输出吧,不要用Debug.Print
herokay 2015-02-05
  • 打赏
  • 举报
回复
怪就怪在debug输出没个都是一行,而唯有dwname输出后把下一行的也接上了
herokay 2015-02-05
  • 打赏
  • 举报
回复
这个是中控考勤下载的数据,sdk的demo直接是输出到listview里的没问题
herokay 2015-02-05
  • 打赏
  • 举报
回复
单独输出也没问题,但是只有dwName后面接到东西都输出不了
於黾 2015-02-05
  • 打赏
  • 举报
回复
你单独把dwname输出看看到底是啥玩意
於黾 2015-02-05
  • 打赏
  • 举报
回复
username太长,给截断了 你还是输出到文本框之类的地方看吧
herokay 2015-02-05
  • 打赏
  • 举报
回复
关键就是输出不全
herokay 2015-02-04
  • 打赏
  • 举报
回复
帖错了 那个name是dwname 一开始输出不了 用name中间转了一下 结果还是一样
  • 打赏
  • 举报
回复
我想,只有你自己最了解问题在哪里。而且你现在一下子就已经知道问题在哪里了。 不怕不会抄袭代码的程序员,就怕只会反复欣赏自己、而不会换个思路检验自己的程序员。
  • 打赏
  • 举报
回复
没有看到你的 Debug.Print(name) 啊?你怎知道它“单个输出没问题”?
  • 打赏
  • 举报
回复
怎么看怎么诡异,没看懂……
加载更多回复(1)

16,719

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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