现在的位置: 首页 > 综合 > 正文

DataSet绑定Hashtable为DropDownList提供数据源

2019年11月19日 ⁄ 综合 ⁄ 共 1866字 ⁄ 字号 评论关闭

把某些固定的数据源绑定写到类的方法里,能够使代码更好的适应变化。下面的方法并没有放到类里只是简单的做了示范:   

  protected void Page_Load(object sender, EventArgs e)
    {
        string connectionString = ConfigurationManager.ConnectionStrings["tahx2006ConnectionString"].ConnectionString;
        string tableName = "SYS_DIC_BalancePeriod";
        string key = "SDBP_MID";
        string value = "SDBP_MCOSTNO";

        Hashtable ht = GetHashtable(connectionString,tableName, key, value);
        DropDownList1.DataSource = ht;
        DropDownList1.DataTextField = "value";
        DropDownList1.DataValueField = "key";
        DropDownList1.DataBind();
    }

        /// <summary>
        /// 提供Hashtable用来绑定DropDownList
        /// </summary>
        /// <param name="connectionString">链接数据库的字符串</param>
        /// <param name="tableName">要链接的表名</param>
        /// <param name="key">用来做HashTable键的列名</param>
        /// <param name="value">用来做HashTable值的列名</param>
        public Hashtable  GetHashtable(string connectionString,string tableName, string key,string value )
        {
            string sqlString = "select " + key + "," + value + " from " + tableName;
            SqlConnection con = new SqlConnection(connectionString);
            con.Open();
          //1
            SqlDataAdapter da = new SqlDataAdapter(sqlString, con);
            DataSet ds = new DataSet();
            da.Fill(ds, tableName);
            Hashtable ht = new Hashtable();
            //给Hashtable 赋值
            foreach ( DataRow row in ds.Tables[0].Rows )
            {
                ht.Add(row[key], row[value]);
            }

            //2 用 datareader
            //SqlCommand command = new SqlCommand(sqlString,con);
            //SqlDataReader dr = command.EndExecuteReader();
            //Hashtable ht = new Hashtable();
            //while (dr.Read())
            //{
            //    string strKey = dr.GetSqlValue(0).ToString();
            //    string strValue = dr.GetSqlValue(1).ToString();
            //    ht.Add(strKey, strValue);
            //}

            con.Close();
            return ht;
        } 

抱歉!评论已关闭.