【发布时间】:2011-07-29 15:38:24
【问题描述】:
如何将 MySQL 查询中返回的结果转换为 C# .Net/Mono 中的数组
据我了解,您需要使用数组将包含的项目数来定义数组,但我知道 DataReader 不会告诉您返回了很多行。那么如何定义一个数组。
到目前为止我有:
string sqlWhere;
if ((name != None) && (name != ""))
sqlWhere = "WHERE name LIKE '%"+name+"%'";
if ((company != None) && (company != ""))
if (sqlWhere == "")
sqlWhere = "WHERE company LIKE '%"+company+"%'";
else
sqlWhere = sqlWhere + " AND company LIKE '%"+company+"%'";
if ((dateFrom != None) && (dateFrom != "") && (dateTo != None) && (dateTo != ""))
if (sqlWhere == "")
sqlWhere = "WHERE date(timestampIn) BETWEEN '"+dateFrom+"' AND '"+dateTo+"'";
else
sqlWhere = sqlWhere + " AND date(timestampIn) BETWEEN '"+dateFrom+"' AND '"+dateTo+"'";
IDbCommand dbcmd = this.dbcon.CreateCommand();
dbcmd.CommandText = "SELECT * FROM visitors " + sqlWhere;
MySqlDataReader Reader = dbcmd.ExecuteReader();
while (Reader.Read())
{
}
【问题讨论】:
-
使用上面的代码,你对 SQL 注入持开放态度——这是一个严重的安全问题!
-
为什么要数组?创建一个几乎总是一个坏主意。如果需要,您可以将数据读取器直接绑定到网格。