Der Wert von dt.Rows.Count ist immer gleich 1 und der Wert von dt.Rows [0] [0] und dt.Rows [0] [ 1] ist eine leere Zeichenfolge, wenn ich sqlStr ohne Datensätze abfrage.C# Datentabelle Zeilenwert ist eine leere Zeichenfolge, aber es gibt den Nullwert
Aber ich führe sqlStr in der Datenbank aus. Es ist null. Here is the database screenshot Ich weiß nicht, warum es so ist.
string sqlStr = "select SUM(userIncome),SUM(userSpend) from tb_billlist where userPhone = '" + userPhone + "' and " +
"billTime between '" + beginDate + "' and '" + endDate + "'";
//execute sql
DataTable dt = new DataTable();
dt = MysqlHelper.ExecuteDataTable(sqlStr);
if (dt.Rows.Count > 0)
{
userBillInfo.userAllIncome = (float.Parse)(dt.Rows[0][0].ToString());
userBillInfo.userAllSpend = (float.Parse)(dt.Rows[0][1].ToString());
}
else
{
userBillInfo.userAllIncome = 0;
userBillInfo.userAllSpend = 0;
}
das sieht so aus als gäbe es keine Zeilen .. – BugFinder
Ich würde * starten *, indem ich die SQL-Injection-Angriffsschwachstelle (oder zumindest die Konvertierungsfragilität) behebe, die Sie dort hinbringen. Verwenden Sie parametrisiertes SQL, * immer *. –
Sie erhalten immer eine Zeile, da SUM() immer etwas zurückgibt. –