OracleConnection conn = new OracleConnection("Password=tiger;User ID=scott;Data Source=test;Persist Security Info=True");string sql = "insert into I_SMS_RecData (DecNum, RecTime, RecInfo) "
                  + "values (:DecNum, :RecTime, :RecInfo)";OracleCommand cmd = new OracleCommand(sql,conn);
cmd.CommandType = CommandType.Text; 
cmd.Parameters.Add(":DecNum", OracleType.VarChar);
cmd.Parameters.Add(":RecTime", OracleType.Timestamp);
cmd.Parameters.Add(":RecInfo", OracleType.VarChar);cmd.Parameters[":DecNum"].Value = "1244";
cmd.Parameters[":RecTime"].Value = DateTime.Now;
cmd.Parameters[":RecInfo"].Value = "test";
          
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();以上代码,在一台计算机上运行正常,但是到另外一台机器上(数据库也变了,但是产生数据库的脚本一样)就报数据类型不一致的错,如果去掉DateTime格式的参数,运行正常,可以肯定问题出在DateTime上
原因何在?
谢谢

解决方案 »

  1.   

    to_date('1983-11-30','YYYY-MM-DD HH24:mi:ss') 把时间这样处理下试试
      

  2.   

    不知道,感觉可能是不同系统或VSS版本的默认时间日期格式可能不太一样...同样遭遇这个问题,同样的办法解决的某人飘过.......
      

  3.   

    我看过两个数据库里面的时间数据格式是一样的,C#的DateTime.Now的toString方法打印出来的也是一样,奇怪为什么在插入记录时出错
      

  4.   

    DateTime.Now  不就是  sysdate 了么?
    这样说该明白了吧
      

  5.   

    也就是说不用 DataTime.Now 直接在SQL中用 sysdate就可以了