我正在从数据库中获取内容并通过 Javascript 将其返回以进行 Ajax 处理。很简单的东西。这里的问题是我似乎找不到循环数据的好方法,而且 MSDN 文档的 odbcreader 方法非常糟糕。
using (OdbcCommand com = new OdbcCommand("SELECT * FROM pie_data WHERE Pie_ID = ?",
con)) {
if (Request.Form["reference_id"] == "") {
returnError();
} else {
com.Parameters.AddWithValue("", Request.Form["reference_id"]);
com.ExecuteNonQuery();
using (OdbcDataReader reader = com.ExecuteReader()) {
string finalstring = "";
while (reader.Read()) {
if(reader.HasRows) {
finalstring = reader.GetString(9) + ",";
for (int i = 0; i <= 8; i = i + 1) {
finalstring = finalstring + reader.GetValue(i).ToString() + ",";
}
finalstring = finalstring + "|";
reader.NextResult();
}
}
if (finalstring != "") {
finalstring = finalstring.Remove(finalstring.Length -1, 1);
Response.Write(finalstring);
}
}
noredirect = 1;
}
}
但是,这里是示例输出:
00001,0,Pie Johnson,piesaregreat@yum.com,,,10/7/2010 12:00:00 AM,Bakery,N/A,N/A,
如您所见,第二个分隔符根本没有出现,而它确实应该出现。此外,当在 heidisql 中运行时,此查询返回大量行,而不仅仅是这一结果。一旦我将它传递给 Javascript,我就可以弄清楚,因为我在这方面有更多的经验,而且我之前实际上已经通过 PHP 做到了这一点。