繁体   English   中英

没有为一个或多个参数赋值

[英]No value given to one or more parameters

所以我在文本框中输入一些数据,然后单击此按钮

    private void button2_Click(object sender, EventArgs e)
    {
      command.Connection = connect;
      if (idkaryawantxt.Text != "")
       {
            string q = "UPDATE tableAbsensi SET Absen_keluar =('" + (DateTime.Now.ToString("hh:mm")) + "') WHERE ID ='" + idkaryawantxt.Text.ToString() + "' AND Tanggal ='" + (DateTime.Now.ToString("MM-dd-yyyy")) +"'";
            dosomething(q);
       }
       this.Close();
    }

然后说

没有为一个或多个参数赋值

该表如下所示: 在此处输入图片说明

不仅检查idkaryawantxt是否为空,还要检查其是否不为null:

    if (string.IsNullOrEmpty(idkaryawantxt.Text))
    {
        var currentDateTime = DateTime.Now; 
        string q = "UPDATE tableAbsensi SET Absen_keluar ='" 
            + currentDateTime.ToString("hh:mm") + "' WHERE ID ='" 
            + idkaryawantxt.Text + "' AND Tanggal ='" 
            + currentDateTime.ToString("MM-dd-yyyy") +"'";

        dosomething(q);
    }

其次,这里不需要括号(DateTime.Now.ToString("hh:mm"))和这里(DateTime.Now.ToString("MM-dd-yyyy"))

您不需要将idkaryawantxt.Text转换为字符串( idkaryawantxt.Text.ToString() ),因为它已经是字符串。

您在这里不需要方括号SET Absen_keluar =('" ,在这里"') WHERE ID ='"

更重要的是,将DateTime.Now设置为变量而不是两次调用可能是有用的,因为在某些特殊情况下,它可以给您两个不同的值。

最后:避免以这种情况下的方式创建查询。 这不是创建查询的一种优雅方式,并且无法防止SQL注入。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM