我有一个SQL命令我运行,但工作很好,但对于AddWithValue参数之一我想使用另一个SQL命令来获取该值...这是我有,但我想要使用的cmd2不起作用。它甚至有可能获得数据的方式在理论上它是有道理的,但它似乎并没有工作..使用SQL命令作为参数值在C#
cmd2 = new SqlCommand("SELECT acctNum FROM custInfo WHERE customerName = @customerName", cn);
cmd2.Parameters.AddWithValue("@customerName", customerDropDown.Text);
cmd = new SqlCommand("UPDATE custInfo SET ctGal = (ctGal - (@contractGallons)) WHERE acctNum = @acctNum", cn);
cmd.Parameters.AddWithValue("@contractGallons", gallonsTextBox.Text)
cmd.Parameters.AddWithValue("@acctNum", cmd2);
'update ... where acctNum in(select c.acctNum from custInfo c ...)'? –
您不执行'cmd2'来获取'acctNum'值。但@DmitryBychenko会更好地工作,因为它只有1次调用数据库。 –
甚至更简单 - 'UPDATE custInfo SET ctGal =(ctGal - (@contractGallons))WHERE customerName = @ customerName' - 如果您已拥有'@ customerName',则实际上不需要'acctNum' ... –