none
[求助]如何向SQL语句传递日期参数 RRS feed

  • 问题

  • OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = conn;
    cmd.CommandText = "UPDATE [Yh_UrlTb] SET UrlStatus=true,LastTime=@LastTime Where UrlUserID=@UrlUserID";
    cmd.Parameters.Add(new OleDbParameter("@UrlUserID", UrlUserID))
    cmd.Parameters.Add(new OleDbParameter("@LastTime", DateTime.Now.ToString()))

    我这样写不行,不入库也不报错,没有反映,请问要怎么写才正确呢?
    2009年8月31日 1:38

答案

全部回复

  • 1 @UrlUserId 在数据是否真的存在 ?
    2 你是否在此代码外使用了 try ... catch 并且没有显示的抛出异常
    3 如果你的数据是 Access 参数应为 ? 表示 如果是 SQL Server UrlStatus = true 应改为 UrlStatus = 1


    知识改变命运,奋斗成就人生!
    2009年8月31日 1:45
    版主
  • 1 @UrlUserId 在数据是否真的存在 ?

    存在

    2 你是否在此代码外使用了 try ... catch 并且没有显示的抛出异常

    没有加出错处理

    如果把",LastTime=@LastTime"和"cmd.Parameters.Add(new OleDbParameter("@LastTime", DateTime.Now.ToString()))"
    这两句去掉的话能正常写入

    2009年8月31日 1:49
  • string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\db1.mdb;";
    using (OleDbConnection conn = new OleDbConnection(connectionString))
    {
        OleDbCommand comm = new OleDbCommand("Update UserInfo SET LastTime = ? WHERE UserId = ?");
    
        //comm.Parameters.Add("@LastTime", DateTime.Now); 出错
        //显示的指定参数类型为日期类型
        comm.Parameters.Add("@LastTime", OleDbType.DBDate, 0).Value = DateTime.Now;
        comm.Parameters.Add("@UserId", OleDbType.LongVarChar, 0).Value = "001";
        comm.Connection = conn;
        conn.Open();
        comm.ExecuteNonQuery();
    }

    知识改变命运,奋斗成就人生!
    2009年8月31日 2:07
    版主
  • 参数按顺序传
    cmd.Parameters.Add(new OleDbParameter("@LastTime", DateTime.Now.ToString()))
    cmd.Parameters.Add(new OleDbParameter("@UrlUserID", UrlUserID))

    http://feiyun0112.cnblogs.com/
    2009年8月31日 2:07
    版主
  • 参数按顺序传
    cmd.Parameters.Add(new OleDbParameter("@LastTime", DateTime.Now.ToString()))
    cmd.Parameters.Add(new OleDbParameter("@UrlUserID", UrlUserID))

    http://feiyun0112.cnblogs.com/

    谢谢 feiyun0112 的解答!
    2009年8月31日 2:39
  • 表面上看没有问题,跟顺序没有多大关系,建议仔细检查.可能是其它问题

    2009年9月4日 9:15
  • 这里是 ADO.Net Linq 区,建议你到相应的区里边去提问。那里肯定比这里合适!

    2009年9月4日 9:17