我嘗試使用表值參數將包含多列的列表添加到 MSSQL 數據庫。我收到此錯誤:'無法將 '...Models.OptionValue' 類型的對象轉換為類型 'System.IConvertible'。無法將 <...OptionValue> 存儲在 OptionID 列中。預期類型是 Int32。InnerException:InvalidCastException:無法將“...Models.OptionValue”類型的對象轉換為類型“System.IConvertible”。SQL Tvp 表:CREATE TYPE [dbo].[OptionValueList] AS TABLE( [OptionID] [int] NULL, [ValueID] [int] NULL)班級:public class OptionValue { public int OptionID { get; set; } public int ValueID { get; set; }} public class OptionListVM { public int ProductID { get; set; } public List<OptionValue> OptionValueLst { get; set; } }這是我嘗試添加列以便將列表傳遞給存儲過程的地方: DataTable tvp = new DataTable(); tvp.Columns.Add(new DataColumn("OptionID", typeof(int))); tvp.Columns.Add(new DataColumn("ValueID", typeof(int))); foreach (var x in o.OptionValueLst) tvp.Rows.Add(x); -- error line我實現了 IConvertable 接口,但它不起作用。我怎樣才能解決這個問題 ?
1 回答

Qyouu
TA貢獻1786條經驗 獲得超11個贊
DataTable tvp = new DataTable();
tvp.Columns.Add(new DataColumn("OptionID", typeof(int)));
tvp.Columns.Add(new DataColumn("ValueID", typeof(int)));
foreach (<OptionValue>x in o.OptionValueLst) {
DataRow dr = tvp.NewRow();
dr("OptionID") = x.OptionID;
dr("ValueID") = x.ValueID;
tvp.Rows.Add(dr);
}
- 1 回答
- 0 關注
- 119 瀏覽
添加回答
舉報
0/150
提交
取消