C# 使用实体框架将Datagridview行插入数据库

C# 使用实体框架将Datagridview行插入数据库,c#,winforms,entity-framework,datagridview,ado.net,C#,Winforms,Entity Framework,Datagridview,Ado.net,如果我想向datagridview添加记录,这是可以的,但我想向datagridview中包含哪些行的数据库添加记录 有一种方法-如何添加Datagridview行 public void SepeteEkle() { decimal? tutar; decimal? toplamtutar = 0; int miktarsum = 0; DataRow urun = dt.NewRow(); tutar = Convert.ToDecimal(lbl

如果我想向datagridview添加记录,这是可以的,但我想向datagridview中包含哪些行的数据库添加记录

有一种方法-如何添加Datagridview

public void SepeteEkle()
{
    decimal? tutar;
    decimal? toplamtutar = 0;
    int miktarsum = 0;

    DataRow urun = dt.NewRow();

    tutar = Convert.ToDecimal(lblFiyat.Text) * Convert.ToInt32(txtMiktar.Text);
    bool itemfound = false;

    for (int i = 0; i < dgvSepet.Rows.Count; i++)
    {
        if (Convert.ToString(dgvSepet.Rows[i].Cells[0].Value) == lblStokID.Text)
        {
            miktarsum += Convert.ToInt32(dgvSepet.Rows[i].Cells[4].Value) + Convert.ToInt32(txtMiktar.Text);
            toplamtutar += Convert.ToDecimal(dgvSepet.Rows[i].Cells[5].Value) + tutar;

            dgvSepet.Rows[i].Cells[4].Value = miktarsum;
            dgvSepet.Rows[i].Cells[5].Value = toplamtutar; 

            itemfound = true;
        }
    }

    if (itemfound == false)
    {
        urun["Id"] = lblStokID.Text;
        urun["StokKodu"] = txtStokKodu.Text;
        urun["Ürün"] = txtStokAdi.Text;
        urun["Fiyat"] = lblFiyat.Text;
        urun["Miktar"] = txtMiktar.Text;
        urun["Toplam"] = tutar;

        dt.Rows.Add(urun);
        dgvSepet.DataSource = dt;
    }
}
public void septeekle()
{
十进制?图塔;
十进制?toplamtutar=0;
int miktarsum=0;
DataRow urun=dt.NewRow();
tutar=Convert.ToDecimal(lblFiyat.Text)*Convert.ToInt32(txtMiktar.Text);
bool itemfound=false;
对于(int i=0;i
我想添加所有使用实体框架创建的行的数据库

我尝试的是:

public void DatabaseSepetAktar()
{
    xstHar stokHareketModel = new xstHar();
    stokHareketModel.stharCariKod = txtCariKodu.Text;
    stokHareketModel.stharTarih = DateTime.Now;
    stokHareketModel.stharDovFiyat = Convert.ToDecimal(lblTotal.Text);

    for (int i = 0; i < dgvSepet.Rows.Count -1 ; i++)
    {
        stokHareketModel.masterId = Convert.ToInt32(dgvSepet.Rows[i].Cells[0].Value);
        stokHareketModel.stokKodu = dgvSepet.Rows[i].Cells[1].Value.ToString();
        stokHareketModel.stharGcMik1 = Convert.ToDecimal(dgvSepet.Rows[i].Cells[4].Value);

        using (fastCellDb db = new fastCellDb())
        {
            db.xstHars.Add(stokHareketModel);
            db.SaveChanges();
        }
    }
}
public void数据库septektatar()
{
xstHar stokHareketModel=new xstHar();
stokHareketModel.stharCariKod=txtCariKodu.Text;
stokHareketModel.stharTarih=DateTime.Now;
stokHareketModel.stharDovFiyat=Convert.ToDecimal(lblTotal.Text);
对于(int i=0;i
但我犯了个错误

验证例外

从实体框架


我怎样才能解决这个问题

当您尝试转换错误类型的值时,会引发验证异常,这是由于错误的索引造成的。当您使用文本索引将一行添加到DataGridView
dt.Rows.add(urun)
时,将索引方式从数字更改为文本:单元格[0]→ 单元格[“Id”]等


查看以下行:
对于(int i=0;i您需要查看异常对象的
验证错误
,并深入查看其中的信息。它非常详细地告诉你出了什么问题。关于如何轻松提取这些信息,谢谢!!ı查看我的异常信息,看看哪些数据不能发送null。谢谢这就是为什么不解决我的问题