使用数据库中的项填充checkboxlist?
好的,所以我想将一些数据填充/绑定到一个复选框列表,但似乎无法将正确的值binf? 我想用ROW中的信息填充它,而不是整个列,这就是我发生的事情。 这里有一些代码可以告诉你问题是什么。
这是xaml中的代码
这是我的数据库(只有一个示例) 链接来自gyazo
问题
数据
这是我的代码
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using System.Web.Configuration; namespace ExampleCheckbox { public partial class Question_One : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection con = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(); command.Connection = con; command.CommandType = CommandType.Text; command.CommandText = "Select * from Questions"; SqlDataAdapter dataAdapter = new SqlDataAdapter(command); DataSet questionsDataSet = new DataSet(); con.Open(); dataAdapter.Fill(questionsDataSet, "Question"); DataTable dt = questionsDataSet.Tables["Question"]; foreach (DataRow dr in dt.Rows) { ListItem newItem = new ListItem(dr["Option1"].ToString(), dr["QuestionID"].ToString()); CheckBoxList1.Items.Add(newItem); } CheckBoxList1.DataSource = questionsDataSet; CheckBoxList1.DataTextField = "Option1"; CheckBoxList1.DataValueField = "QuestionID"; CheckBoxList1.DataBind(); } }
}
这也是我遇到问题的问题
谢谢
你想要做的是循环遍历列而不是行,并取代列名。
在这里查看这个问题/答案:
这是一个完整的例子。 这是你的代码应该是这样的:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data.SqlClient; using System.Data; using System.Web.Configuration; namespace ExampleCheckbox { public partial class Question_One : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string connectionString = WebConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; SqlConnection con = new SqlConnection(connectionString); SqlCommand command = new SqlCommand(); command.Connection = con; command.CommandType = CommandType.Text; command.CommandText = "Select * from Questions"; SqlDataAdapter dataAdapter = new SqlDataAdapter(command); DataSet questionsDataSet = new DataSet(); con.Open(); dataAdapter.Fill(questionsDataSet, "Question"); DataTable dt = questionsDataSet.Tables["Question"]; int i = 0; string str1 = string.Empty; int i = 0; dr = dt.Rows(ClientID); //whatever you're using for the row index foreach (DataColumn dc in dt.Columns) { ListItem newItem = new ListItem(dr[dc].ToString(), i.ToString()); CheckBoxList1.Items.Add(newItem); i++; } } } } }