[英]Get Values from a SELECT IN Statement C#
我需要使用 SELECT 語句從列中提取多個值。
MySqlConnection con = new MySqlConnection(strConn);
MySqlCommand com = new MySqlCommand(
SELECT meta_value
FROM postmeta
WHERE postID = 16 AND metakey IN (
'SKU', 'Price', 'Amount'), con)
con.Open();
MySqlDataReader r = com.ExecuteReader();
while(r.read())
{
prodMeta.Add(new ProductMeta
{
ProductSKU = r.GetString(0),
ProductPrice = r.GetDouble(0),
ProductAmountSold = r.GetInt16(0)
}
}
我只得到每一個的最后一個“ProductAmountSold”。 我猜這與 ExecuteReader 有關系,它帶回了列。 我環顧四周,找不到任何易於遵循的說明,可以使用 1 個查詢從單個列中獲取多個值。
您 sql 查詢選擇單個列。 為了選擇幾列,您需要更新您的 sql。 IE:
SELECT meta_value, price, amountSold
FROM postmeta
WHERE postID = 16 AND metakey IN (
'SKU', 'Price', 'Amount'), con)
然后增加索引,當你得到你的價值時:
{
ProductSKU = r.GetString(0),
ProductPrice = r.GetDouble(1),
ProductAmountSold = r.GetInt16(2)
}
這可能會有所幫助: Retrieve data using a DataReader
您還需要閱讀元鍵列以了解如何解析元值列
SELECT metakey, meta_value
FROM postmeta
WHERE postID = 16 AND metakey IN (
'SKU', 'Price', 'Amount'), con)
con.Open();
MySqlDataReader r = com.ExecuteReader();
while(r.read())
{
prodMeta.Add(new ProductMeta
{
String type = r.GetString(0);
if (type == "SKU")
{
ProductSKU = r.GetString(1);
}
else if (type == "PRICE")
{
ProductPrice = r.GetDouble(1);
}
else
{
ProductAmountSold = r.GetInt16(1);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.