我不明白爲什麼我得到這個錯誤,我有一個數據表與列: 整數numeromesa,字符串狀態和整數valortotal。特定的演員表無效
當我嘗試導入帶有選擇查詢的數據到我的Pedido變量時,它會得到我的轉換錯誤。 這是將從表
public class Pedido
{
public int numeromesa { get; set; }
public int valorpedido { get; set; }
public string status { get; set; }
}
現在,這是我利用select查詢
public List<Pedido> listaPedido()
{
vsql = "SELECT * FROM pedidos";
List<Pedido> bancoPedidos = new List<Pedido>();
NpgsqlCommand objcmd = null;
objcmd = new NpgsqlCommand(vsql, con);
NpgsqlDataAdapter adp = new NpgsqlDataAdapter(objcmd);
DataTable dt = new DataTable();
adp.Fill(dt);
foreach (DataRow row in dt.Rows)
{
//This is line 185
Pedido p = new Pedido
{
numeromesa = (int)row[1],
status = (string)row[2],
valorpedido = (int)row[3]
};
bancoPedidos.Add(p);
return bancoPedidos;
}
方法
這個問題似乎是與valorpedido變量,如果我把接收數據的類它代碼工作正常
**************例外文本************** System.InvalidCastException:指定的轉換不是有效。 PostgreSQL.cs:線185
索引是從零開始的,因此除非結果集中有四列,否則它必須是行[0],行[1]和行[2]。更好地按列名稱進行索引。 「select * from ...」與基於序號的索引相關聯是一種非常脆弱的方法。 – dlatikay
你確定你不應該從0而不是1索引? – juharr
是否valortotal可以空?你在其他答案的評論中提到了「不能投向dbnull」。 – cost