データベースからコンテンツを取得し、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,
ご覧のとおり、2 番目のデリミネータは、実際には表示されるべきなのに、まったく表示されていません。また、このクエリを heidisql で実行すると、この 1 つの結果だけでなく、かなりの数の行が返されます。Javascriptに渡すと、それを理解することができます。これは、以前にPHPを介して実際に行ったことがあるためです。