ConnectionString属性尚未在ASP.NET

时间:2017-10-08 17:16:58

标签: c# asp.net

请帮我解决这个问题:

  

ConnectionString属性尚未初始化。

我是ASP.NET的新手。

我正在尝试在登录e Label1.Text后显示用户名。但是当我运行代码时,它显示了这个错误......它也显示了

  

无效操作异常

我的代码:

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace Botswna_Centralized_Health_Card_System.healthcareOfficerLogins
{
    public partial class healthcareOfficerLogins : System.Web.UI.Page
    {
        SqlCommand cmd = new SqlCommand();
        SqlConnection con = new SqlConnection();
        SqlDataAdapter sda = new SqlDataAdapter();

        DataSet ds = new DataSet();

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["hospital_name"] == null)
            {
                Response.Redirect("~/hospital_login/hospital_login.aspx");
            }
            else
            {
                SqlConnection con = new SqlConnection("Data Source=BOW-PC\\BOW;Initial Catalog= BCHCS;Integrated Security=True");
                con.Open();

                showdata();
            }
        }

        public void showdata()
        {
            cmd.CommandText="select * from hospitallogins where hospital_Name='" + Session["hospital_Name"]+ "'";
            cmd.Connection = con;
            sda.SelectCommand = cmd;

            sda.Fill(ds);
            Label1.Text= ds.Tables[0].Rows[0]["hospital_Name"].ToString();
        }
    }
}

1 个答案:

答案 0 :(得分:1)

您有两个SqlConnection的不同实例,它们都名为con

第一个在你的班级宣布:

SqlConnection con = new SqlConnection();

第二个是在Page_Load

内宣布的
SqlConnection con = new SqlConnection("Data Source=BOW-PC\\BOW;Initial Catalog= BCHCS;Integrated Security=True");

当您致电showdata()时,您正在使用尚未初始化的第一个实例。

你真的应该重构这个以使用单个连接。另外,为了确保您没有任何资源泄漏,请务必使用SqlConnection上的使用区块或在finally块中调用Dispose

using (con = new SqlConnection("Data Source=BOW-PC\\BOW;Initial Catalog= BCHCS;Integrated Security=True"))
{
    con.Open();

    showdata();
}