![](/img/trans.png)
[英]Delete rows from DataTable at once without loop where a column has Null value
[英]Delete rows that contains null value from dataTable
我有一个包含7800行的DataTable,每行包含3列,如果第二列为null,则可能有Null值我正在删除整行,问题是即使我删除行,DataTable仍然包含相同数量的行号码愿望是7800
编码 :
string query = "Select STORE_NAME, STORE_LATITUDE, STORE_LONGTITUDE "
+" From stores inner join contact_information on stores.STORE_ID=contact_information.CONTACT_ID "
+" where CONTACT_TYPE_ID=1 "
+" AND CONTACT_COUNTRY_ID="+Country
+" AND CONTACT_CASA_ID="+Casa
+" AND CONTACT_TOWN_ID="+Town;
DataTable dt = new SQLHelper(SQLHelper.ConnectionStrings.KernelConnectionString).getQueryResult(query);
dt = removeNullColumnFromDataTable(dt);
功能 :
public static DataTable removeNullColumnFromDataTable(DataTable dt)
{
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
if (dt.Rows[i][1].ToString() == null)
dt.Rows[i].Delete();
}
return dt;
}
public static void RemoveNullColumnFromDataTable(DataTable dt)
{
for (int i = dt.Rows.Count - 1; i >= 0; i--)
{
if (dt.Rows[i][1] == DBNull.Value)
dt.Rows[i].Delete();
}
dt.AcceptChanges();
}
你可以将第一行改为此(对于sql server):
string query = "Select STORE_NAME, isnull(STORE_LATITUDE,'') as STORE_LATITUDE, STORE_LONGTITUDE "
并检查空字符串(如果字段类型是char,varchar ...等..)
dt.Rows[i][1].ToString() == ""
或者使用isnull(STORE_LATITUDE,0)并检查零dt.Rows [i] [1] .ToString()==“0”如果字段类型是数字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.