Cześć, mam problem przy pobieraniu z bazy danych. Przygotowałem model danych wraz z pobieraniem i zapisywaniem, wygląda następująco:
using AppCore;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Threading.Tasks;
namespace MagazynierWeb.Models
{
public class ProductsModel
{
public string ProductCode { get; set; }
public string ProductName { get; set; }
public string ProductGroup { get; set; }
public string InventoryNumber { get; set; }
public string PKWIUCode { get; set; }
public float Level { get; set; }
public float MinLevel { get; set; }
public float MaxLevel { get; set; }
public float Wight { get; set; }
public string Unit { get; set; }
public string Package { get; set; }
public int PiecesInPackage { get; set; }
public static List<ProductsModel> GetProducts = SqlOperations.GetData("dic.t_products").Tables[0].AsEnumerable().Select(x => new ProductsModel()
{
ProductCode = x.Field<string>("ProductCode"),
ProductName = x.Field<string>("ProductName"),
ProductGroup = x.Field<string>("ProductGroup"),
InventoryNumber = x.Field<string>("InventoryNumber"),
PKWIUCode = x.Field<string>("PKWIUCode"),
Level = x.Field<float>("Level"),
MinLevel = x.Field<float>("MinLevel"),
MaxLevel = x.Field<float>("MaxLevel"),
Wight = x.Field<float>("Wight"),
Unit = x.Field<string>("Unit"),
Package = x.Field<string>("Package"),
PiecesInPackage = x.Field<int>("PiecesInPackage"),
}).ToList();
public static void SaveProduct(ProductsModel model)
{
var test = model.PKWIUCode.Split(" ")[0];
SqlOperations.Exec("dic.p_products", new SqlParameter[]
{
new SqlParameter("@ProductCode", model.ProductCode),
new SqlParameter("@ProductName", model.ProductName),
new SqlParameter("@ProductGroup", model.ProductGroup),
new SqlParameter("@Inventorynumber", model.InventoryNumber),
new SqlParameter("@PKWiUCode", model.PKWIUCode.Split(" ")[0]),
new SqlParameter("@Level", model.Level),
new SqlParameter("@MinLevel", model.MinLevel),
new SqlParameter("@MaxLevel", model.MaxLevel),
new SqlParameter("@Wight", model.Wight),
new SqlParameter("@Unit", model.Unit),
new SqlParameter("@Package", model.Package),
new SqlParameter("@PiecesInPackage", model.PiecesInPackage)
});
}
}
}
W sytuacji, w której chcę pobrać dane z bazy danych wykorzystując: GetProducts:
Prześledziłem ścieżkę i wyjątek pojawia się w tym fragmencie kodu (5 wiersz):
public static DataSet GetData(string tableName)
{
DataSet result = new DataSet();
using (SqlConnection conn = SqlConnector.SqlConnection)
{
using (SqlDataAdapter adapter = new SqlDataAdapter(string.Format("select * from {0}", tableName), conn))
{
adapter.Fill(result);
}
}
return result;
}
Pozostałem pobieranie danych z bazy danych działa, a tylko w tym przypadku pojawia się problem z pobraniem danych. Czytając wyjątek można znaleźć, że problem występuje z kastowaniem, jednak w modelu jaki i tabeli w bazie danych występują te same typy danych