如果列没有值和 return blamk(仅"),i 如何返回null,而没有任何特定字段的字符根据此示例。
[WebMethod]
public string HelloWorld()
{
return "Hello World";
}
[WebMethod]
public DataTable GetEmployeeInformation(string USERID)
{
string constr = ConfigurationManager.ConnectionStrings["MyCon"].ConnectionString;
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand("SELECT * FROM VW_NTB_EIM_O365 WHERE USERID=@USERID"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Parameters.AddWithValue("@USERID", USERID);
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
dt.TableName = "NTB_EIM_O365";
sda.Fill(dt);
if (dt == null)
{
return null;
}
return dt;
}
}
}
}
}
}
}
null值将直接来自db(如果它们在DB中存在于DB中,则对于该特定的行/列),无论如何,如果您想检查数据中的单元格/任何其他条件表,这是代码
if(dt != null && dt.Rows.count > 0){
foreach(DataRow dr in dt.Rows)
{
if (string.IsNullOrWhiteSpace(dr.Field<string>("col")))
{
//do something
dr["somecol"] = null;
}
if (dr.Field<string>("somecol") == "someValue")
{
dr["somecol"] = string.Empty;
//do something
}
}
}
else
{
return null;
}
也许这样的东西:
public bool EmptyDataTable(DataTable dt)
{
if (dt == null || dt.Rows.Count < 1)
return true;
for (int i = 0; i < dt.Rows.Count; i++)
{
if (!string.IsNullOrWhiteSpace(dt.Rows[i].Field<string>("columnName")))
{
return false;
}
}
return true;
}
,然后:
if (EmptyDataTable(dt))
{
return null;
}
问题是,您要在返回时处置数据。
using (DataTable dt = new DataTable()) // <---- using calls the Dispose()
{
dt.TableName = "NTB_EIM_O365";
sda.Fill(dt);
if (dt == null)
{
return null;
}
return dt;
}
不要使用,因为返回时不应处理该实例。您的问题有点模糊,但是如果我正确理解,这就是您想要的。至少,它会在路上帮助您。
DataTable dt = new DataTable();
dt.TableName = "NTB_EIM_O365";
sda.Fill(dt);
if(dt.Rows.Count == 0)
return null;
// check the first row:
bool allEmpty = true;
for (int columnIndex = 0; columnIndex < dt.Columns.Count; columnIndex++)
{
if (!string.IsNullOrEmpty(dt.Rows[0][columnIndex].ToString()))
{
allEmpty = false;
break;
}
}
if(allEmpty)
return null;
return dt;
您可以尝试此
if (dt != null && dt.Rows.Count>0)
return dt;
else
return null;
或
if(dt !=null)
{
if(dt.Rows.Count>0)
{
return dt;
}
}
return null;