sql server 2000里表A中的stockingtime为datetime型
在vb中做了一个文本框,比方当用户输入格式为2007-8-8后,按确认
就可以将2007-8-8插入到表A里了.但我的程序上老出错.
我是这么写的
cn.Execute "Insert into Stocking(Stockingtime)  " & _
           "values(" & Cdate(Text.text) & ")"请问.正确的写法是什么样的.很急.谢谢大家了

解决方案 »

  1.   

    cn.Execute "Insert into Stocking(Stockingtime)  " & _
               "values('" & Text.text & "')"
    请先判断Text当中的值是否可被SQLSERVER识别为日期类型,下列格式是肯定会被识别的:
    yyyy-mm-dd hh:nn:ss
    yyyy-mm-dd
    yyyy-mm-dd hh:nn:ss.ffff使用VB的日期控件是个好办法
      

  2.   

    多谢楼上的.用你的方法可以了.但我还有两个疑问
    1. 按照你的方法, "values('" & Text.text & "')"传过去的是字符串型.但是SQL SERVER里我定义的是datetime型.我的思路是,应该先把text.text转为DATE型.那为什么你的正确.我的思路却错误呢?很想知道详细的正确的原因.2. 还有你说的日期控件是不是指.Datatimepicker控件啊.可我在我的VB里找不到这个控件.我该怎么添加呢.谢谢了
      

  3.   

    1.对于SQL语句的DateTime类型来说,用字符串的办法是最方便的,好像还有其它的办法,因为不好用我已经忘了,SQL可以把格式正确的字符串转换成DateTime类型,而用你的办法时,其实VB会把由CDate函数转换成的时间类型转换成字符串代入到SQL语句当中,不要忘了,对于VB来说,SQL语句仅仅是一串字符串,而按照你的写法,这样的一个值是错误的,因为它不是SQL当中的字符串(SQL当中的字符串要求两边必须带'符号),也不是字段什么的,所以会报错2.添加部件:Micosoft Windows Common Controls-2 6.0  (MSCOMCT2.OCX)
      

  4.   

    我理解你的意思了.但我这里有个语句,请看看
    cn.Execute "Insert into Storage(Price)" & _
               "values(" & Val(Text(0).Text) & ") " Price 是 money 型的这里的"values(" & Val(Text(0).Text) & ") " 并没有用到你说的'
    根据你的意思.我是不是可以这么理解. 
    因为Price是money型的,所以不属于字符串型,故这里就不可以用上'了.只有字符串型或者是可以将字符串型转化为所需要的类型(象上面的datetime)才能加上'.
    是这么理解吗? 望指教
      

  5.   

    是的,没错,数值型的当然不用加'符号了,因为在SQL语句里,数值型的表示方法是可以被转换成相应数值的数字序列