簡體   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