日期:2014-05-16  浏览次数:20519 次

多个数据源下拉列表只显示一个
1.下面的代码,只有ques2这个列表能正确加载数据,ques3加载不了数据,想问下,具体怎么个原理.去掉注释就都能加载了,但是感觉那样连接两次数据库.
2.我网上看到说.net默认有连接池,想再确认下是不是这样(java中需要专门写连接池,或用开源连接池包).

public partial class reg : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

        SqlConnection con = new SqlConnection("Data Source=P9UAPI0U8CC5WD6\\SQLEXPRESS;Initial Catalog=Qiming;Integrated Security=True");
        String sqlStr = "select code,name from question;";
        SqlCommand com = new SqlCommand(sqlStr, con);
        com.Connection.Open();
        SqlDataReader data = com.ExecuteReader();


       
        ques2.DataSource = data;
        ques2.DataTextField = "name";
        ques2.DataValueField = "code";
        ques2.DataBind();
        //con.Close();

        /*
        con = new SqlConnection("Data Source=P9UAPI0U8CC5WD6\\SQLEXPRESS;Initial Catalog=Qiming;Integrated Security=True");
        sqlStr = "select code,name from question;";
        com = new SqlCommand(sqlStr, con);
        com.Connection.Open();
        data = com.ExecuteReader();

         */ 
        ques3.DataSource = data;
        ques3.DataTextField = "name";
        ques3.DataValueField = "code";
        ques3.DataBind();
        con.Close();
    }

------解决方案--------------------
我觉得是DataReader的问题,你试试改用DataSet
------解决方案--------------------
应该是冲突了。。。。。。。。。。。
------解决方案--------------------
要做到同时绑定两个DataSource 的话就只能使用DataSet!请了解! 
------解决方案--------------------
引用:
用DataSet没问题,刚解除C#,DataReader是流操作,不能回溯,所以不行是吧.
Quote: 引用:

我觉得是DataReader的问题,你试试改用DataSet

是的,因为DataReader是只能前进,不能后退,如果你想操作一个集合,还是用DataSet或者DataTable好一些