要是代码是:则提示 编译器错误信息: CS0103: 名称“myConnection”在类或命名空间“ASP.write_aspx”中不存在
<script language="C#" runat="server">
private void DBOpen()
{
string conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["Stevenbass"]);
OleDbConnection myConnection = new OleDbConnection(conn);
myConnection.Open();
}private void send_click(Object Src, EventArgs E)
{   
DBOpen();
string insertQuery = "Insert Into gb(gb_name,gb_title,gb_content,gb_date,gb_mail,gb_homepage,gb_sex) Values ('"+name.Text+"','"+title.Text+"','"+content.Text+"','"+DateTime.Now+"','"+Email.Text+"','"+homepage.Text+"','"+ (Male.Checked ? Male.Text : Female.Text) +"')";
OleDbCommand cmd = new OleDbCommand(insertQuery,myConnection);
cmd.ExecuteNonQuery();
cmd.Dispose();
myConnection.Close();
myConnection.Dispose();
Response.Write("<p align=center><a href=index.aspx>Post Message Succeed,Click Here To Go To Default</a></p>");
}
</script>======================================
但改成,把连接数据库的代码放到send_click去就不会出现错误了,为什么??
private void send_click(Object Src, EventArgs E)
{   
string conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["Stevenbass"]);
OleDbConnection myConnection = new OleDbConnection(conn);
myConnection.Open();
string insertQuery = "Insert Into gb(gb_name,gb_title,gb_content,gb_date,gb_mail,gb_homepage,gb_sex) Values ('"+name.Text+"','"+title.Text+"','"+content.Text+"','"+DateTime.Now+"','"+Email.Text+"','"+homepage.Text+"','"+ (Male.Checked ? Male.Text : Female.Text) +"')";
OleDbCommand cmd = new OleDbCommand(insertQuery,myConnection);
cmd.ExecuteNonQuery();
cmd.Dispose();
myConnection.Close();
myConnection.Dispose();
Response.Write("<p align=center><a href=index.aspx>Post Message Succeed,Click Here To Go To Default</a></p>");
}
</script>

解决方案 »

  1.   

    http://bbs.dvbbs.net/dispbbs.asp?boardID=3&ID=956347&page=1
    这样看会比较清晰!
      

  2.   

    OleDbConnection myConnection = new OleDbConnection(conn);在DBOpen()方法中也就是说  myConnection是DbOpen()中的内部变量当然在  send_click中不能应用把myConnection定义成全局变量 就可以了<script language="C#" runat="server">
    OleDbConnection myConnection;
    private void DBOpen()
    {
    string conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["Stevenbass"]);
    myConnection = new OleDbConnection(conn);
    myConnection.Open();
    }
      

  3.   

    myConnection.Close();
    myConnection.Dispose();以上2句不行。
    myConnection 是DBOpen()中的。
      

  4.   

    愿意是你 的 myConnection 变量没有定义成全局变量,
    就是说在你的 send_click没有定义myConnection  你应该在
    OleDbConnection myConnection ; 
    private void DBOpen()
    {
    string conn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["Stevenbass"]);
    myConnection = new OleDbConnection(conn);
    myConnection.Open();
    }
      

  5.   

    回designs(花斑猪)
    myConnection.Close();
    myConnection.Dispose();以上2句不行。
    myConnection 是DBOpen()中的。
    是什么意思呢??
      

  6.   

    我按大家改成全局变量后提示以下错误:
    说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: CS1002: 应输入 ;源错误:行 4:  
    行 5:  <script language="C#" runat="server">
    行 6:  OleDbConnection myConnection;<============================这行提示错误
    行 7:  private void DBOpen()
    行 8:  {
     
      

  7.   

    myConnection是DbOpen()中的局部变量,作用域仅在此函数,在其他地方是不可见的。