注册 登录
编程论坛 ASP.NET技术论坛

有关 string.format()问题

tangchen668 发布于 2014-07-06 22:47, 1533 次点击
string sql3 = String.Format("insert guestcategory (categoryid,categoryname,categoryrate) values ({0},'{1}','{2}')",Convert.ToInt32( txt_roomNo.Text), txt_name.Text, txt_roomtype.Text);
其中categoryid 是int类型
categoryname,categoryrate是字符串类型
txt_name txt_roomNo  txt_roomtype是文本框
字符串格式错误
错误提示是categoryrate 提示是确保方法参数的格式正确,将一个字符串转换为DateTime时,先分析该字符串以获取日期,然后将每个变量放置DateTime对象中
其中txt_roomtype.Text 装的是一个时间间隔变量TimeSpan转换为字符串变量而来,数据库表中categoryrate类型为nchar(20)

其中我把categoryid改为字符串类型就解决了,不过插入的都是空数据,插入语句的数据是从文本框而来,这些文本框都设为不可用,是不是这个原因啊,另外为什么原先的语句不行,要把int改为字符串,谢谢。
4 回复
#2
步向巅峰2014-07-07 12:40
insert guestcategory (categoryid,categoryname,categoryrate) values ({0},'{1}','{2}')",Convert.ToInt32( txt_roomNo.Text), txt_name.Text, txt_roomtype.Text
insert into
#3
tangchen6682014-07-07 20:20
我按你说的方法改成
insert guestcategory (categoryid,categoryname,categoryrate) values ('{0}','{1}','{2}')",txt_roomNo.Text, txt_name.Text, txt_roomtype.Text
添加成功了,不过是空的,
我也加了into 没用
不是可以省略吗?
另外,原来的错在哪?
#4
邓士林2014-07-08 22:45
我昨天也遇到这样的问题,网上有人说用stringbuilder类去建一个对象,然后用Appendformat,但是也没效果,今天我拿到公司的电脑上却可以显示数据,你多调试下吧!看看我发的这个帖子吧:http://bbs.
#5
步向巅峰2014-07-09 12:19
insert guestcategory (categoryid,categoryname,categoryrate) values ('{0}','{1}','{2}')",txt_roomNo.Text, txt_name.Text, txt_roomtype.Text
你把这段代码扔到数据库中试试,看行不行,把txt_roomNo.Text等换成实际的值,至少可以明白错误时出现在哪个阶段
另外建议txt_roomNo.Text.Trim(),避免意外的空字符
1