因转换而无法插入日期

时间:2014-01-28 17:40:43

标签: c# sql sql-server

这是我的代码:

SqlCommand cmda = new SqlCommand(
                        "insert into EnteryItem (ItemName, ImageIndex, DateEntery, Index0, ItemBarcode)"
                        + "Values (@ItemName, GETDATE(), @ImageIndex, @Index0, @ItemBarcode)"
                        , cn);
cn.Open();
cmda.Parameters.AddWithValue("@ItemName", "");
//   cmda.Parameters.AddWithValue("@DateEntery", now);
cmda.Parameters.AddWithValue("@ImageIndex", "0");
cmda.Parameters.AddWithValue("@Index0", "");
cmda.Parameters.AddWithValue("@ItemBarcode", label12.Text);

cmda.ExecuteNonQuery();
cn.Close();

enter image description here

我尝试了几种方法,但我得到了相同的

  

将nvarchar值'28 / 01/2014'转换为数据类型int时转换失败。

错误,有时

  

不允许从数据类型datetime到int的隐式转换。使用CONVERT函数运行此查询。

我需要以特定格式插入日期和时间

2 个答案:

答案 0 :(得分:6)

看起来应该交换第二列和第三列的值。应该是:

insert into EnteryItem (ItemName, ImageIndex, DateEntery, Index0, ItemBarcode)
Values (@ItemName, @ImageIndex, GETDATE(), @Index0, @ItemBarcode)

另请注意,您没有使用@DateEntery参数,但您要将其添加到参数列表中。

答案 1 :(得分:3)

比较您的列名称和值

ItemName   ImageIndex  DateEntery   Index0   ItemBarcode
@ItemName  GETDATE()   @ImageIndex  @Index0  @ItemBarcode
           ^           ^

你会看到两个标记是向后的。它试图将日期放入整数列。纠正这一点,你应该没事。