我有簡單的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之間的差異 –