我需要用来自JSON数据的项填充动态列表框,这些项是动态的并且来自Asp.Net和MySQL数据库。
我在互联网上遇到了一些代码片段,但似乎都无法满足我的需求。
我没有错误,但列表框为空。
下面的我的代码。
如何解决此问题?
谢谢!
protected string GetJsonData()
{
string query = "SELECT * FROM City ORDER BY NAME DESC LIMIT 5;";
string constr = ConfigurationManager.ConnectionStrings["cn"].ConnectionString;
using (MySqlConnection con = new MySqlConnection(constr))
{
using (MySqlCommand cmd = new MySqlCommand(query))
{
List<ListItem> customers = new List<ListItem>();
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
con.Open();
using (MySqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
customers.Add(new ListItem
{
Value = sdr["Name"].ToString(),
Text = sdr["Name"].ToString()
});
}
}
con.Close();
JavaScriptSerializer jsSer = new JavaScriptSerializer();
string str = jsSer.Serialize(customers);
return str;
}
}
<script type="text/javascript">
$(function () {
//Get data and fill first box
var $json = <% =GetJsonData() %>;
pageload($json);
});
</script>
<div id="list1" class="connectedSortable">
<asp:ListBox ID="lstCustomers" runat="server"></asp:ListBox>
</div>
<div id="list2" class="connectedSortable">
</div>
然后您可以将数据库查询读入阅读器并将对象填充到列表中,如下所示:
public class Movie
{
public string MovieID { get; set; }
public string MovieName { get; set; }
public string MovieLength { get; set; }
public string MovieDesc { get; set; }
}
List<Movie> listOfMovies = new List<Movie>();
using(SqlConnection connection = new SqlConnection("Data Source=balder.ucn.dk;Initial Catalog=dmaa0213_6;********"))
{
using(SqlCommand cmd = new SqlCommand(connection))
{
cmd.CommandString = "SELECT * FROM movies ORDER BY MovieId";
connection.Open();
using(SqlDataReader reader = cmd.ExecuteDataReader())
{
while(reader.Read())
{
Movie item = new Movie();
item.MovieId = reader.GetInt32(0);
item.MovieName = reader.GetString(1);
item.MovieLength = reader.GetString(2);
item.MovieDesc = reader.GetString(3);
listOfMovies.Add(item);
}
}
connection.Close();
}
}