[英]Method that returns HttpResponseMessage - how do I return an Exception instead, is this possible?
[英]How do i modify the codes so that in the method getProductTransaction, I return a list of transactions instead of a single transaction
protected void bind()
{
Session["name"] = "John";
string name = Session["name"].ToString();
List<TransactionDetail> transList = new List<TransactionDetail>();
transList.Add(aTrans.getProductTransaction(name));
gv_Transaction.DataSource = transList;
gv_Transaction.DataBind();
}
public TransactionDetail getProductTransaction(string p_UserName)
{
TransactionDetail prodDetail = null;
string tran_ID, offer_ID, user, Prod_Image, prod_Name;
decimal prod_Price;
SqlConnection conn = new SqlConnection(connStr);
string queryStr = "SELECT * FROM TransactionDetail WHERE UserName = @user";
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@user", p_UserName);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
tran_ID = dr["TransactionID"].ToString();
offer_ID = dr["OfferId"].ToString();
user = dr["UserName"].ToString();
Prod_Image = dr["Image"].ToString();
prod_Name = dr["ProductName"].ToString();
prod_Price = decimal.Parse(dr["ProductPrice"].ToString());
prodDetail = new TransactionDetail(tran_ID, offer_ID, user, Prod_Image, prod_Name, prod_Price);
}
else
{
prodDetail = null;
}
conn.Close();
dr.Close();
dr.Dispose();
return prodDetail;
}
輸出僅返回單個事務而不是所有事務。 代碼試圖從John檢索所有事務歷史記錄,但現在它只返回一個事務歷史記錄。 是因為需要將其更改為arraylist,以便它具有多個事務。 所以我改變了aspx.cs綁定方法和getProductTransaction
if(dr.Read())
更改為while(dr.Read())
(您循環直到Read()
為false)
您還需要在每個循環上添加List<TransactionDetail>
並將返回類型更改為IList<TransactionDetail>
並返回列表而不是單個對象。
編輯:這樣的事情應該有效......
protected void bind()
{
var name = "John";
Session["name"] = name;
gv_Transaction.DataSource = getProductTransactions(name);
gv_Transaction.DataBind();
}
public IList<TransactionDetail> getProductTransactions(string p_UserName)
{
var transList = new List<TransactionDetail>();
var queryStr = "SELECT * FROM TransactionDetail WHERE UserName = @user";
string tran_ID, offer_ID, user, Prod_Image, prod_Name;
decimal prod_Price;
using(var conn = new SqlConnection(connStr))
using(var cmd = new SqlCommand(queryStr, conn))
{
cmd.Parameters.AddWithValue("@user", p_UserName);
conn.Open();
using(var dr = cmd.ExecuteReader())
{
while(dr.Read())
{
tran_ID = dr["TransactionID"].ToString();
offer_ID = dr["OfferId"].ToString();
user = dr["UserName"].ToString();
Prod_Image = dr["Image"].ToString();
prod_Name = dr["ProductName"].ToString();
prod_Price = decimal.Parse(dr["ProductPrice"].ToString());
transList.Add(new TransactionDetail(tran_ID, offer_ID, user, Prod_Image, prod_Name, prod_Price));
}
}
}
return transList;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.