[英]InvalidCastException C#
我被困在這個問題上。 請幫忙。
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandTimeout = 0;
cmd.CommandText = "hhrcv_upsert_grv_sku";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("pv_delivery_bay_code", OracleDbType.VarChar).Value = this.bayCode.ToString();
cmd.Parameters.Add("pn_company_id_no", OracleDbType.Number).Value = lblCompany_id_no.Text.ToString();
cmd.Parameters.Add("pn_order_no", OracleDbType.Number).Value = this.orderCode.ToString();
cmd.Parameters.Add("pn_sku_id_no", OracleDbType.Number).Value = lblSku_id_no.Text.ToString();
cmd.Parameters.Add("pn_price", OracleDbType.Number).Value = txtPrice.Text.ToString();
cmd.Parameters.Add(new OracleParameter("pv_error", OracleDbType.VarChar));
cmd.Parameters["pv_error"].Direction = ParameterDirection.Output;
string pv_error;
conn.Open();
cmd.ExecuteNonQuery();
pv_error = (string)cmd.Parameters["pv_error"].Value;
if (cmd.Parameters["pv_error"].Value.ToString().Equals("Invalid"))
{
MessageBox.Show("Invalid");
}
else
{
MessageBox.Show("valid");
}
在讀取pv_error = (string)cmd.Parameters["pv_error"].Value;
的行上未處理 Get InvalidCastException pv_error = (string)cmd.Parameters["pv_error"].Value;
不知道如何解決。
謝謝。
Parameters [“ pv_error”]。Value的類型可能不是字符串。
pv_error = (string)cmd.Parameters["pv_error"].Value;
嘗試將其替換為:
pv_error = cmd.Parameters["pv_error"].Value.ToString();
與您在下一行中所做的一樣。 並且您必須測試Value!= null。
嘗試
Convert.ToString(cmd.Parameters["pv_error"].Value)
Convert.ToString()處理null。
您可以這樣嘗試。
OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandTimeout = 0;
cmd.CommandText = "hhrcv_upsert_grv_sku";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("pv_delivery_bay_code", OracleDbType.VarChar).Value = this.bayCode.ToString();
cmd.Parameters.Add("pn_company_id_no", OracleDbType.Number).Value = lblCompany_id_no.Text.ToString();
cmd.Parameters.Add("pn_order_no", OracleDbType.Number).Value = this.orderCode.ToString();
cmd.Parameters.Add("pn_sku_id_no", OracleDbType.Number).Value = lblSku_id_no.Text.ToString();
cmd.Parameters.Add("pn_price", OracleDbType.Number).Value = txtPrice.Text.ToString();
var pv_error = cmd.Parameters.Add(new OracleParameter("pv_error", OracleDbType.VarChar));
pv_error.Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
if (pv_error.Value.ToString().Equals("Invalid"))
{
MessageBox.Show("Invalid");
}
else
{
MessageBox.Show("valid");
}
查看引起異常的pv_error
的實際值會很有用,但是由於pv_error
是輸出參數 -如果沒有“錯誤”,它將以NULL
,因此導致InvalidCastException
我認為設置之前進行一些檢查可以解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.