带有空数据源的dataGridView会导致额外的空白行 [英] dataGridView with empty data source causes extra blank row
本文介绍了带有空数据源的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屋!
查看全文