4

我的 sql 数据库中有一个名为“WEB_SEL_SECURITY_QUESTIONS”的存储过程,它返回如下表。

SEQURITY_QUESTIONS_KEY、KEYCODE、QUESTION

我需要用执行上述过程得到的问题列表填充一个 html 选择框。

这是我尝试过的

String s = ConfigurationManager.ConnectionStrings["ConnectionString2"].ToString();
SqlConnection con = new SqlConnection(s);
con.Open();
SqlDataAdapter myAdepter = new SqlDataAdapter("WEB_SEL_SECURITY_QUESTIONS", con);
myAdepter.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
myAdepter.Fill(ds, "WEB_SEL_SECURITY_QUESTIONS");
String questions = ds.Tables["WEB_SEL_SECURITY_QUESTIONS"].Rows[]["QUESTION"].ToString();
securityQuestion1.DataSource = questions;
securityQuestion1.DataBind(); 

但这只会用一条记录填充选择框,并以这样一种方式生成列表项,即每个列表项只有一个字符,并且只有第一条记录。

4

1 回答 1

1

你可以试试:

securityQuestion1.DataSource = ds.Tables["WEB_SEL_SECURITY_QUESTIONS"];
securityQuestion1.DataTextField = "QUESTION";
securityQuestion1.DataValueField = "KEYCODE"; // Or whatever the value field needs to be.
securityQuestion1.DataBind(); 

您的第一次尝试只是从一个问题中获取单个值并将其用作整个数据源。因此,您需要的目标是将整个安全问题表作为数据源,然后提示它使用哪些列进行值和显示(DataTextField、DataValueField)。

于 2012-04-05T12:13:43.107 回答