带有空数据源的dataGridView会导致额外的空白行 [英] dataGridView with empty data source causes extra blank row

查看:51
本文介绍了带有空数据源的dataGridView会导致额外的空白行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

你好,



i有一个datagridview,设置了一个bindingsorce set。



工作正常我的数据源有行,如果是emty,我有一个emty行我的数据网格,但是我的数据网格没有行。



从数据库中检索数据:



Hello,

i have a datagridview, has set a bindingsorce set.

works fine wen my datasource has rows, if is emty, i have a emty row im my datagrid but i whant my datagridvie with no row.

retrive data from database:

internal static ProduseStoc[] ProduseVanzare()
       {
           Program.Connection.CommandText = "select NirProduse.*, ProdusID, NirID, IdProdus, Nume, NirProduseAmanet.Descriere AS DescriereNir, Cantitatea, UnitateMasura, SerialProdus, PretIntrare, PretPropusVanzare, PretVanzare, IdProdusVandut, GrProdusIesire, IIF(CatProdus Is Null, 0, CatProdus) AS CatProdus, Observatii, GrProdusIesire, IdNotaContabila, IdScadereGramaj "
                                          + "from NirProduseAmanet LEFT JOIN NirProduse ON NirProduseAmanet.NirID = NirProduse.ProdusNirId "
                                          + "WHERE NirProduseAmanet.IdProdusVandut=@IdProdusVandut AND NirProduseAmanet.IdNotaContabila=@IdNotaContabila AND NirProduseAmanet.IdScadereGramaj=@IdScadereGramaj ORDER BY contractSursa";
           Program.Connection.AddParameter("@IdProdusVandut", 0);
           Program.Connection.AddParameter("@IdNotaContabila", 0);
           Program.Connection.AddParameter("@IdScadereGramaj", 0);
           DataTable dataFI = new DataTable();
           Program.Connection.FillDataTable(dataFI, true);


           return Lista<ProduseStoc>(dataFI, delegate(DataRow rezultatTB)
           {
               return new ProduseStoc(rezultatTB);
           });

       }







public static T[] Lista<T>(DataTable table, Converter<DataRow, T> conversion)
        {
            List<T> retval = new List<T>();

            if (table != null)
            {
                foreach (DataRow dr in table.Rows)
                    retval.Add(conversion(dr));
            }
            return retval.ToArray();
        }










namespace Amanet.Amanet.Core
{
    public class ProduseStoc
    {

        public int nirID { get; set; }
        public DateTime dataIntrare { get; set; }
        public int clientID { get; set; }
        public int contractID { get; set; }
        public int produsTransfer { get; set; }
        public string locatieTransfer { get; set; }
        public int produsID { get; set; }
        public int produsIDContract { get; set; }
        public string descriereProdus { get; set; }
        public string observatiiProdus { get; set; }
        public decimal cantitateaProdus { get; set; }
        public string unitateMasura { get; set; }
        public string serialProdus { get; set; }
        public decimal pretIntrare { get; set; }
        public decimal pretPropusVanzare { get; set; }
        public decimal pretVanzare { get; set; }
        public int idProdusVandut { get; set; }
        public int catProdus { get; set; }
        public string observatiiVanzare { get; set; }
        public decimal grIesireAur { get; set; }
        public int idNotaContabila { get; set; }
        public int idNotaScadere { get; set; }

        
        public ProduseStoc(DataRow ProdusVanzare)
        {
            this.nirID = (int)ProdusVanzare["ProdusNirID"];
            this.dataIntrare = (DateTime)ProdusVanzare["DataIntrare"];
            this.clientID = (int)ProdusVanzare["clientID"];
            this.contractID = (int)ProdusVanzare["contractSursa"];
            this.produsTransfer = (int)ProdusVanzare["produsTransfer"];
            this.locatieTransfer = InterogariDB.GetValue<string>(ProdusVanzare, "locatieTransfer", null);
            this.produsID = (int)ProdusVanzare["ProdusID"];
            this.produsIDContract = (int)ProdusVanzare["IdProdus"];
            this.descriereProdus = (string)ProdusVanzare["Nume"];
            this.observatiiProdus = (string)ProdusVanzare["DescriereNir"];
            this.cantitateaProdus = (decimal)ProdusVanzare["Cantitatea"];
            this.unitateMasura = (string)ProdusVanzare["UnitateMasura"];
            this.serialProdus = (string)ProdusVanzare["SerialProdus"];
            this.pretIntrare = (decimal)ProdusVanzare["PretIntrare"];
            this.pretPropusVanzare = (decimal)ProdusVanzare["PretPropusVanzare"];
            this.pretVanzare = (decimal)ProdusVanzare["PretVanzare"];
            this.idProdusVandut = (int)ProdusVanzare["IdProdusVandut"];
            this.catProdus = (int)ProdusVanzare["CatProdus"];
            this.observatiiVanzare = (string)ProdusVanzare["observatii"];
            this.grIesireAur = (decimal)ProdusVanzare["GrProdusIesire"];
            this.idNotaContabila = (int)ProdusVanzare["IdNotaContabila"];
            this.idNotaScadere = (int)ProdusVanzare["IdScadereGramaj"];

        }
    }
}







在我的表格中:






in my form:

ProduseStoc[] produsVanzare = InterogariDB.ProduseVanzare();
bindingsource.DataSource = produsVanzare;

推荐答案

只需将DataGridView的AllowUserToAddRows-Property设置为false:

Just set the AllowUserToAddRows-Property of your DataGridView to false:
YourDataGridView.AllowUserToAddRows = false;


这篇关于带有空数据源的dataGridView会导致额外的空白行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆