我更新我的網站,在那裏我得到以下錯誤的某些字段:「System.InvalidCastException:指定的轉換無效」 - 日期時間
System.InvalidCastException:指定的轉換無效。
而且其中所述錯誤是這樣(如在該錯誤信息示出)的代碼:
線77:productObj.QuantityInStock = dt.Rows [0] [ 「QuantityInStock」]的ToString ();
78行:productObj.MinQuantity = dt.Rows [0] [「MinQuantity」]。ToString();
第79行:productObj.DateUpdated =(DateTime)dt.Rows [0] [「DateUpdated」]; //這是出錯的地方
第80行:productObj.DateCreated =(DateTime)dt.Rows [0] [「DateCreated」];
81行:}
我的更新查詢是這樣的:
public int Update(Product obj)
{
string query = "update tblProduct set [email protected],[email protected],Prod[email protected],[email protected],[email protected],[email protected] WHERE [email protected]";
List<SqlParameter> lstParams = new List<SqlParameter>();
lstParams.Add(new SqlParameter("@pid", obj.ProductID));
lstParams.Add(new SqlParameter("@pname", obj.ProdName));
lstParams.Add(new SqlParameter("@pprice", obj.ProdPrice));
lstParams.Add(new SqlParameter("@pdesc", obj.ProdDescription));
lstParams.Add(new SqlParameter("@psize", obj.ProdSize));
lstParams.Add(new SqlParameter("@qis", obj.QuantityInStock));
lstParams.Add(new SqlParameter("@mq", obj.MinQuantity));
return DBUtility.ModifyData(query, lstParams);
}
的Product
類看起來是這樣的:
public class Product : IModel
{
public int ProductID;
public string ProdName;
public string ProdDescription;
public string ProdSize;
public string ProdPrice;
public int CompanyID;
public string ProdPhoto;
public string QuantityInStock;
public string MinQuantity;
public int CategoryID;
public DateTime DateCreated;
public DateTime DateUpdated;
}
錯誤似乎是在這種方法:
public Product SelectByID(int ID)
{
string query = "select * from tblProduct where [email protected]";
List<SqlParameter> lstParams = new List<SqlParameter>();
lstParams.Add(new SqlParameter("@pid", ID));
DataTable dt = DBUtility.SelectData(query, lstParams);
Product productObj = new Product();
if (dt.Rows.Count > 0)
{
productObj.ProdName = dt.Rows[0]["ProdName"].ToString();
productObj.ProdDescription = dt.Rows[0]["ProdDescription"].ToString();
productObj.CompanyID = Convert.ToInt32(dt.Rows[0]["CompanyID"]);
productObj.ProductID = Convert.ToInt32(dt.Rows[0]["ProductID"]);
productObj.CategoryID = Convert.ToInt32(dt.Rows[0]["CategoryID"]);
productObj.ProdSize = dt.Rows[0]["ProdSize"].ToString();
productObj.ProdPrice = dt.Rows[0]["ProdPrice"].ToString();
productObj.QuantityInStock = dt.Rows[0]["QuantityInStock"].ToString();
productObj.MinQuantity = dt.Rows[0]["MinQuantity"].ToString();
productObj.DateUpdated = (DateTime)dt.Rows[0]["DateUpdated"]; //This where error comes
productObj.DateCreated = (DateTime)dt.Rows[0]["DateCreated"];
}
return productObj;
}
在我的數據庫過於我所提到的數據類型爲DateTime
,還是這是爲什麼錯誤來了嗎?
我的方法,我更新如下:
protected void btnUpdate_Click(object sender, EventArgs e)
{
Product prodObj = new ProductLogic().SelectByID(Convert.ToInt32(Request.QueryString["ID"]));
prodObj.ProdName = txtName.Text;
prodObj.ProdPrice = txtPrice.Text;
prodObj.ProdDescription = txtDesc.Text;
prodObj.MinQuantity = txtMinQty.ToString();
prodObj.QuantityInStock = txtInStock.ToString();
prodObj.ProductID = Convert.ToInt32(Request.QueryString["ID"]);
int updateResult = new ProductLogic().Update(prodObj);
if (updateResult > 0)
{
lblUpdateRes.Text = "Detail(s) updated successfully!";
lblUpdateRes.ForeColor = System.Drawing.Color.Green;
}
else
{
lblUpdateRes.Text = "There was some error while updating your detail(s). Please try again later!";
lblUpdateRes.ForeColor = System.Drawing.Color.Red;
}
}
任何意見/建議嗎?
編輯:1這裏是我的表的圖像:
Id'DateUpdated'在數據庫中的'DateTime'字段?它可以是空嗎? –
你錯過了最重要的部分。 'tblProduct'看起來像什麼? –
請發佈'dt.Rows [0] [「DateUpdated」]的值' –