null
它不起作用,因为每当我更新任何列时,它都会使其他列为NULL。
答案 0 :(得分:0)
一个明显的解决方案是使用列列表构建update
。
另一种方法是使用coalesce()
:
update Medicine
set Name = coalesce(' " + textbox1.Text + " ', Name),
Company = coalesce(' " + textbox2.Text + " ', Company),
Type = coalesce(' " + textbox3.Text + " ', Type,
Quantity = coalesce(' " + textbox4.Text + " ', Quantity)
where P_id =' " + textbox5.Text + " '
实际上,您应该使用参数而不是直接在查询字符串中放置值。直接放入参数会使系统容易受到SQL注入的攻击。</ p>
那就是说,我不确定你是如何获得NULL
价值的。你可能真的想要:
update Medicine
set Name =(case when ' " + textbox1.Text + " ' = '' then '" + textbox1.Text + "' else Name end),
. . .