我使用VS-2015中的sql server db功能创建了一个数据库,并尝试嵌套2个网格视图。我已经设置了所有内容,直到我到达连接字符串部分。我必须将连接字符串放在我的aspx页面和我的aspx.cs页面中。我只是不知道在哪里可以找到位于服务器资源管理器中的数据库的连接字符串,或者是否有不同的方法来执行它,因为它已经在项目文件中
正确连接字符串错误
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
GridView gv = (GridView)e.Row.FindControl("GridView2");
SqlDataSource dbSrc = new SqlDataSource();
dbSrc.ConnectionString = ConfigurationManager.ConnectionStrings["Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\HUTDMS.mdf;Integrated Security=True"].ConnectionString;
dbSrc.SelectCommand = "SELECT * FROM textBooks WHERE thirteenISBN = '" + GridView1.DataKeys[e.Row.RowIndex].Value + "' ORDER BY BookTitle";
gv.DataSource = dbSrc;
gv.DataBind();
}
}
在我的连接字符串中,我在连接字符串中的每个'\'中都收到一个下划线,说“无法识别的转义序列”如何否定这个并使用我的连接字符串?
答案 0 :(得分:1)
您未正确使用ConfigurationManager.ConnectionStrings
。您的连接字符串应存储在<connectionStrings>
元素下的web.config文件中:
<add name="ConnectionString" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HUTDMS;Data Source=(LocalDb)\v11.0;"/>
使用name
时,web.config
文件中指定的ConfigurationManager.ConnectionStrings
属性应作为密钥使用:
ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
因此,将书籍数据绑定到GridView的完整逻辑可能看起来像这样:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
var ds = new SqlDataSource();
ds.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
ds.SelectCommand = "SELECT * FROM textBooks ORDER BY BookTitle";
gv.DataSource = ds;
gv.DataBind();
}
}
浏览器中的输出:
答案 1 :(得分:0)
您需要替换| DataDirectory |到物理文件夹路径,例如&#39; C:\ app \ myDb.mdf&#39;