本帖最后由 langxingcs 于 2011-04-21 10:17:41 编辑

解决方案 »

  1.   

    aspx页面是要编译的。  这些客户端是看不到的。 客户端只能得到编译好的HTML.    想要得到ConfigurationManager.AppSettings["ConnString"] 在你配置数据源的时候有选项!选择是否另存为连接字符串。  生成以后代码为 ConnectionString="<%$ ConnectionStrings:CommonConnectionString %>"   webconfig配置为<connectionStrings>
      <add name="CommonConnectionString" connectionString="Data Source=EFEIHUCD\SQLEXPRESS;Initial Catalog=Common;Integrated Security=True"
       providerName="System.Data.SqlClient" />
     </connectionStrings>
      

  2.   

    1、数据库的连接字符串放到web.config中2、数据库操作的单独写一个类文件3、数据绑定的淡出写一个类文件实例:数据库操作类: public class DataBase
        {
            protected static string strDbConn = ConfigurationSettings.AppSettings["strDbConn"];
            protected static string strClientConn = ConfigurationSettings.AppSettings["strClientConn"];
            public static string DataBaseType = ConfigurationSettings.AppSettings["DataBaseType"];        /// <summary>
            /// 执行sql,返回DataTable
            /// </summary>
            /// <param name="strSql">sql语句</param>
            /// <returns>DataTable</returns>
            public static DataTable ExecuteDataTable(string strSql)
            {
                OleDbConnection DbConn = new OleDbConnection(strDbConn);
                OleDbDataAdapter sda = null;
                DataSet ds = null;
                try
                {
                    DbConn.Open();
                    sda = new OleDbDataAdapter(strSql, DbConn);
                    ds = new DataSet("ds");
                    sda.Fill(ds);
                    return ds.Tables[0];
                }
                catch (Exception e)
                {
                    throw e;
                }
                finally
                {
                    ds.Dispose();
                    sda.Dispose();                DbConn.Close();
                    DbConn.Dispose();
                }
            }
    }数据绑定函数:
    /// <summary>
            /// 绑定页面控件数据
            /// </summary>
            /// <param name="WebCtrl">要绑定的控件</param>
            /// <param name="sql">绑定使用的sql</param>
            /// <returns>记录行数</returns>
            public static int DataBind(object WebCtrl, string sql)
            {
                DataTable dt = Util.DataBase.ExecuteDataTable(sql);            int iCount = 0;
                string type = WebCtrl.GetType().FullName;
                switch (type)
                {
                    case "System.Web.UI.WebControls.DataList":
                        {
                            iCount = dt.Rows.Count;                        System.Web.UI.WebControls.DataList ctrl = WebCtrl as System.Web.UI.WebControls.DataList;                        //for (int Index = 0; Index < (ctrl.PageSize - iCount % ctrl.PageSize) && (Index < ctrl.PageSize) && (ctrl.AllowPaging == true); Index++)
                            //{
                            //    DataRow dr = dt.NewRow();
                            //    dt.Rows.Add(dr);
                            //}                        ctrl.DataSource = dt.DefaultView;
                            ctrl.DataBind();
                            break;
                        }
                    case "System.Web.UI.WebControls.DataGrid":
                        {
                            iCount = dt.Rows.Count;                        System.Web.UI.WebControls.DataGrid ctrl = WebCtrl as System.Web.UI.WebControls.DataGrid;                        for (int Index = 0; Index < (ctrl.PageSize - iCount % ctrl.PageSize) && (Index < ctrl.PageSize) && (ctrl.AllowPaging == true); Index++)
                            {
                                DataRow dr = dt.NewRow();
                                dt.Rows.Add(dr);
                            }                        ctrl.DataSource = dt.DefaultView;
                            ctrl.DataBind();
                            break;
                        }
                    case "System.Web.UI.WebControls.GridView":
                        {
                            iCount = dt.Rows.Count;                        System.Web.UI.WebControls.GridView ctrl = WebCtrl as System.Web.UI.WebControls.GridView;                        for (int Index = 0; Index < (ctrl.PageSize - iCount % ctrl.PageSize) && (Index < ctrl.PageSize) && (ctrl.AllowPaging == true); Index++)
                            {
                                DataRow dr = dt.NewRow();
                                dt.Rows.Add(dr);
                            }                        ctrl.DataSource = dt.DefaultView;
                            ctrl.DataBind();
                            break;
                        }
                    case "System.Web.UI.WebControls.DropDownList":
                        {
                            System.Web.UI.WebControls.DropDownList ctrl = WebCtrl as System.Web.UI.WebControls.DropDownList;
                            System.Web.UI.WebControls.ListItem lt = new System.Web.UI.WebControls.ListItem();
                            ctrl.Items.Clear();
                            foreach (DataRow dr in dt.Rows)
                            {
                                lt.Text = dr[0].ToString();//Name
                                lt.Value = dr[1].ToString();//Value                            ctrl.Items.Add(lt);                            lt = new System.Web.UI.WebControls.ListItem();
                            }
                            break;
                        }
                    case "System.Web.UI.HtmlControls.HtmlSelect":
                        {
                            System.Web.UI.HtmlControls.HtmlSelect ctrl = WebCtrl as System.Web.UI.HtmlControls.HtmlSelect;
                            System.Web.UI.WebControls.ListItem lt = new System.Web.UI.WebControls.ListItem();
                            ctrl.Items.Clear();
                            foreach (DataRow dr in dt.Rows)
                            {
                                lt.Text = dr[0].ToString();//Name
                                lt.Value = dr[1].ToString();//Value                            ctrl.Items.Add(lt);                            lt = new System.Web.UI.WebControls.ListItem();
                            }
                            break;
                        }
                    case "System.Web.UI.WebControls.ListBox":
                        {
                            System.Web.UI.WebControls.ListBox ctrl = WebCtrl as System.Web.UI.WebControls.ListBox;
                            System.Web.UI.WebControls.ListItem lt = new System.Web.UI.WebControls.ListItem();
                            ctrl.Items.Clear();
                            foreach (DataRow dr in dt.Rows)
                            {
                                lt.Text = dr[0].ToString();//Name
                                lt.Value = dr[1].ToString();//Value                            ctrl.Items.Add(lt);                            lt = new System.Web.UI.WebControls.ListItem();
                            }
                            break;
                        }
                    case "System.Web.UI.WebControls.CheckBoxList":
                        {
                            System.Web.UI.WebControls.CheckBoxList ctrl = WebCtrl as System.Web.UI.WebControls.CheckBoxList;
                            System.Web.UI.WebControls.ListItem lt = new System.Web.UI.WebControls.ListItem();
                            ctrl.Items.Clear();
                            foreach (DataRow dr in dt.Rows)
                            {
                                lt.Text = dr[0].ToString();//Name
                                lt.Value = dr[1].ToString();//Value                            ctrl.Items.Add(lt);                            lt = new System.Web.UI.WebControls.ListItem();
                            }
                            break;
                        }
                    case "System.Web.UI.WebControls.RadioButtonList":
                        {
                            System.Web.UI.WebControls.RadioButtonList ctrl = WebCtrl as System.Web.UI.WebControls.RadioButtonList;
                            System.Web.UI.WebControls.ListItem lt = new System.Web.UI.WebControls.ListItem();
                            ctrl.Items.Clear();
                            foreach (DataRow dr in dt.Rows)
                            {
                                lt.Text = dr[0].ToString();//Name
                                lt.Value = dr[1].ToString();//Value                            ctrl.Items.Add(lt);                            lt = new System.Web.UI.WebControls.ListItem();
                            }
                            break;
                        }            }            dt.Dispose();            return iCount;
            }
      

  3.   

    用原始的SQL来绑 比较灵活