Conn_String.ascx   //数据库连接控件代码<%@ Control Language="C#" %>
<script language="C#" runat="server">
public string JetConnectionString
{
get {return ConfigurationSettings.AppSettings["MyAppWeb_CS"]
+ Request.PhysicalApplicationPath + "databases\\data.mdb";}
}</script>======================
Logon.aspx   //登陆界面(没用后台编码即在本页编写代码时,运行正确)
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OleDb" %>
<%@ Register TagPrefix="MyCtrl" TagName="Connect" Src="Conn_String.ascx" %><MyCtrl:Connect id="ctlConnectString" runat="server" />   //获取数据库连接语句控件
//
// 登陆表单 
//
<script language="C#" runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
         if(Page.IsPostBack)
  {
         String strConnection = ctlConnectString.JetConnectionString;  
         //关键句,获取数据库连接语句!!
         OleDbConnection objConnection = new OleDbConnection(strConnection);
//
......
......
//
  
======================
Logon.aspx (利用后台编码时,要导入哪些接口语句???)private void Page_Load(object sender, System.EventArgs e)
{
         if(Page.IsPostBack)
  {
         String strConnection = ctlConnectString.JetConnectionString;  
         //这里怎样写才能获取数据库连接语句???!!
         OleDbConnection objConnection = new OleDbConnection(strConnection);
//
......
......
//
不知道我的问题表述清楚了没有?多谢你们的帮忙!

解决方案 »

  1.   

    把这个
    Conn_String.ascx 
    写成一个类
    而不是一个ascx
    using System;
    using System.Web;
    using System.Data;
    using System.Data.OleDb;
    ......public class DataAccess
    {
       public static string JetConnectionString()
    {
    get {return ConfigurationSettings.AppSettings["MyAppWeb_CS"]
    + HttpContext.Current.Request.PhysicalApplicationPath + "databases\\data.mdb";}
    }   .............
    }
    调用的时候======================
    Logon.aspx (利用后台编码时,要导入哪些接口语句???)private void Page_Load(object sender, System.EventArgs e)
    {
             if(Page.IsPostBack)
      {
             String strConnection = DataAccess.JetConnectionString();  
             OleDbConnection objConnection = new OleDbConnection(strConnection);
    //
    ......
    ......
    //
      

  2.   

    楼主去goolge上搜搜DataAccess
    SqlHelper
    之类的整个儿对数据库的操作,应该封成一个工具类比较好一些
      

  3.   

    是的,我写了个类了的,但调试不出来
    public string JetConnectionString()
    {
    return ConfigurationSettings.AppSettings["MyAppWeb_CS"]
    "+Request.PhysicalApplicationPath+"database\\data.mdb";
    }执行时会提示:找不到类型或命名空间名称“ConfigurationSettings”(是否缺少 using 指令或程序集引用?)//
    //之后我改为
    public string JetConnectionString()
    {
    return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Request.PhysicalApplicationPath+"database\\data.mdb";
    }
    执行没提示错误但提交表单时出错提示:未将对象引用设置到对象的实例 
    (说明String strConnection = DataAccess.JetConnectionString();  没获取字符串)若 return "database/data.mdb"   //测试发现可以获得此字符串
    //
    //
    不知道怎么解决这个问题?
      

  4.   

    找不到类型或命名空间名称“ConfigurationSettings”
    ---using System.Configuration
      

  5.   

    1:你的类public string JetConnectionString()应该是一个static的方法
    2:在类里面,return ConfigurationSettings.AppSettings["MyAppWeb_CS"]
    "+Request.PhysicalApplicationPath+"database\\data.mdb";
    修改为:return ConfigurationSettings.AppSettings["MyAppWeb_CS"]
    "+HttpContext.Current.Server.MapPath() +"\\database\\data.mdb";然后试试