我有以下JQUERY代码,我希望将3个json结果返回到控制台。发生了什么事情我得到了第一次回归结果的3份副本。
所以例如我正在尝试查看文件名,我正在找回“名字,名字,名字”而不是“名字,第二名,第三名”
这是我的代码:
$.ajax({
type: "POST",
url: "front.aspx/GetData",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var obj = msg.d;
$.each(obj, function(index, value){
console.log(value);
});
}
});
我对每个功能的错误是什么?
我认为你不需要我的CS代码来告诉我我做错了什么,但是你要这样做,这里是:
public class LoadData {
public string filename;
public string date;
public string filetype;
public Int32 height;
public Int32 width;
public string uploadGroup;
public string title;
public string uniqueID;
public string uploader;
public string uniqueIDnoExt;
}
[WebMethod]
public static List<LoadData> GetData() {
LoadData b = new LoadData();
List<LoadData> info = new List<LoadData>();
SqlDataReader reader;
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlCommand command = new SqlCommand("SELECT * FROM uploads ORDER BY id DESC", connection);
command.Parameters.Add(new SqlParameter("uploader", "anonymous"));
reader = command.ExecuteReader();
while (reader.Read()) {
b.filename = reader.GetString(1);
b.date = reader.GetSqlDateTime(3).ToString();
b.filetype = reader.GetString(4);
b.height = (Int32)reader.GetSqlInt32(5);
b.width = (Int32)reader.GetSqlInt32(6);
b.uploadGroup = reader.GetString(7);
b.title = reader.GetString(8);
b.uniqueID = reader.GetString(9);
b.uploader = reader.GetString(10);
b.uniqueIDnoExt = reader.GetString(12);
info.Add(b);
}
return info;
}
答案 0 :(得分:3)
移动此行
LoadData b = new LoadData();
在循环中。
while (reader.Read()) {
LoadData b = new LoadData();
b.filename = reader.GetString(1);
b.date = reader.GetSqlDateTime(3).ToString();
b.filetype = reader.GetString(4);
b.height = (Int32)reader.GetSqlInt32(5);
b.width = (Int32)reader.GetSqlInt32(6);
b.uploadGroup = reader.GetString(7);
b.title = reader.GetString(8);
b.uniqueID = reader.GetString(9);
b.uploader = reader.GetString(10);
b.uniqueIDnoExt = reader.GetString(12);
info.Add(b);
}
现在你的方式就是只生成一行数据。 List<>
保存引用,不会重新创建它们。因此,如果您没有创建新数据,则不会插入任何新数据(就像现在一样)。你只是在内存中添加第一个,然后更改值。
你也可以阅读: http://en.wikipedia.org/wiki/Linked_list
你已经开了许多东西,你很快就会没有资源。在需要关闭的对象上使用using
关键字。并且,为了速度,在连接字符串上使用静态字符串(只读)。
答案 1 :(得分:1)
您正在以错误的方式创建列表 ..按照@Aristos方式正确添加对象。
并在您的ajax请求sucess:
部分..
循环通过d.data
。请检查此JQuery Ajax with Class Arrays
for (var i in d.data) { }