所以我将一些数据输入到文本框中,然后单击此按钮
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();
}
然后它说
没有赋予一个或多个参数的值
表格如下所示:
答案 0 :(得分:1)
不仅检查idkaryawantxt
是否为空,还检查它是否为空:
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注入的保护。