我有简单的SQL查询:C#获取从选择查询第二个值插入到另一
SELECT val FROM ExampleTable WHERE id in (1,2,3)
要获得VAL值我使用
using(SqlCommand cmd = new SqlCommand(query,conn))
{
var tmp = Convert.ToInt32(cmd.ExecuteScalar());
}
的问题是,该查询返回(当然)超过1排。 我需要这个值,把它作为参数传递给另一个SQL查询这样的:
SELECT val2 FROM ExampleTable2 WHERE val = @val
using(SqlCommand cmd2 = new SqlCommand(query2,conn))
{
cmd2.Parameters.AddWithValue("@val",tmp);
var tmp2 = Convert.ToInt32(cmd2.ExecuteScalar());
}
这一次只得到TMP的第一个值。我想检查所有这些,我的意思是如果第二个查询返回null,则将下一个值tmp
作为参数。
当第一个查询返回多于一行时,第二个可能返回null。这是一个问题,因为我在另一个sql查询中使用了tmp2
值。有任何想法吗 ?
那么你为什么不使用连接或子查询 –
为什么你在temp2中使用'Convert.ToInt32'?而你说tmp2可以是空的! –
@Sunil阅读Convert.Toint32和int.parse之间的差异 –