我正在尝试为此数据库创建搜索按钮。我不确定我在这里做错了什么。它给我的错误是System.NullReferenceException:对象引用未设置为对象的实例。这是关于字符串constring ..等等。无论如何,它是用红色突出显示的地方。
所以,我读了一篇关于访问字符串连接的文章。我做了它说的话。我只是没有看到我做错了什么。
代码:
public partial class StudentView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
protected void Button1_Click(object sender, EventArgs e)
{
this.BindGrid();
}
private void BindGrid()
{
string path = "C:\\Users\\Andrew James Heid\\Desktop\\12\\App_Code\\University DB.accdb";
string conString = ConfigurationManager.ConnectionStrings["Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path].ConnectionString;
string query = "SELECT * FROM Students";
string id = TextBox1.Text.Trim();
if (!string.IsNullOrEmpty(id))
{
id = string.Format(" where ID = '{0}'", id);
}
SqlCommand cmd = new SqlCommand(query + id);
using (SqlConnection con = new SqlConnection(conString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
}
}
}
}
答案 0 :(得分:2)
问题:您正在尝试访问不存在或无效的ConnectionString
。
解决方案: <ConnectionStrings>
由配置文件维护,您需要先设置它们,然后从程序中访问它。
第1步:您需要在配置文件中创建ConnectionString
。
您的配置文件web.config
应具有以下内容:
<connectionStrings>
<add name="MyConnectionString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Andrew James Heid\Desktop\12\App_Code\University DB.accdb"/>
</connectionStrings>
第2步:您需要通过使用索引或其名称从您的程序访问上述ConnectionString
,如下所示:
string conString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
OR
string conString = ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString;