如果单元格重复,我试图在DataGridview中消除一个值或将其为空。我看到了一个示例,但在我的情况下它使用的是GridView
。这是代码:
DataGridview
在 public void atualiza()
{
try
{
SqlConnection con = new SqlConnection(Login.conectData);
con.Open();
dsFerramenta = new DataSet();
daFerramenta = new SqlDataAdapter("SELECT Ferramentas.Ferramenta_ID, Ferramentas_Terminais.Terminal_ID, Ferramentas_Grupos.Grupo_ID, Vedante_ID, Imagem, Nome_Afinação, Vedante, Observações, Data_Criação, Utilizador FROM Ferramentas "+ "JOIN Ferramentas_Terminais ON Ferramentas_Terminais.Ferramenta_ID = Ferramentas.ferramenta_ID " +
"LEFT JOIN Ferramentas_Grupos ON Ferramentas_Grupos.Ferramenta_ID = Ferramentas.Ferramenta_ID " +
"LEFT JOIN Ferramentas_Vedantes ON Ferramentas_Vedantes.Ferramenta_ID = Ferramentas.Ferramenta_ID " +
"LEFT JOIN FormasCravação ON FormasCravação.Cravação_ID = Ferramentas.Cravação_ID " +
"LEFT JOIN TipoAfinação ON TipoAfinação.Afinação_ID = Ferramentas.Afinação_ID", con);
dsFerramenta.Clear();
daFerramenta.Fill(dsFerramenta, scrollVal, 100, "Ferramentas".Trim());
tabelaRelac.DataSource = dsFerramenta;
tabelaRelac.DataMember = "Ferramentas";
//para organizar as colunas na tabela
tabelaRelac.Columns["Terminal_ID"].DisplayIndex = 1;
tabelaRelac.Columns["Grupo_ID"].DisplayIndex = 2;
tabelaRelac.Columns["Vedante_ID"].DisplayIndex = 3;
tabelaRelac.Columns["Vedante"].DisplayIndex = 4;
tabelaRelac.Columns["Nome_Afinação"].DisplayIndex = 5;
tabelaRelac.Columns["Imagem"].DisplayIndex = 6;
tabelaRelac.Columns["Data_Criação"].DisplayIndex = 7;
tabelaRelac.Columns["Observações"].DisplayIndex = 8;
tabelaRelac.Columns["Utilizador"].DisplayIndex = 9;
con.Close();
string doubleValue = tabelaRelac.Rows[0].Cells[0].ToString().Trim();
for (int i = 0; i < tabelaRelac.Rows.Count; i++)
{
if (tabelaRelac.Rows[i].Cells[0].ToString() == doubleValue)
{
string a = tabelaRelac.Rows[i].Cells[0].ToString().Trim();
a = string.Empty;
}
else
{
doubleValue=tabelaRelac.Rows[i].Cells[0].Value.ToString().Trim();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
tabelaRelac.ClearSelection();
}
之后,是我的代码,用于消除重复的单元格并放置一个空值。
我想要一些帮助。
我使用con.close()
是因为ToString()
没有财产DataGridView
谢谢。
答案 0 :(得分:0)
最好在SQL查询中处理重复项。
此外,请记住,在SQL查询生成中使用字符串连接非常危险,因为它很容易受到SQL注入攻击。而是使用参数化查询。
如果您坚持要在DataTable级别删除重复项,那么建议您查看Ratty's Answer
这是Ratty帖子中的代码段
public DataTable RemoveDuplicateRows(DataTable dTable, string colName) { Hashtable hTable = new Hashtable(); ArrayList duplicateList = new ArrayList(); //Add list of all the unique item value to hashtable, which stores combination of key, value pair. //And add duplicate item value in arraylist. foreach (DataRow drow in dTable.Rows) { if (hTable.Contains(drow[colName])) duplicateList.Add(drow); else hTable.Add(drow[colName], string.Empty); } //Removing a list of duplicate items from datatable. foreach (DataRow dRow in duplicateList) dTable.Rows.Remove(dRow); //Datatable which contains unique records will be return as output. return dTable; }