数据列表不显示SQL查询 - 没有构建错误

时间:2015-02-08 02:53:36

标签: c# sql asp.net

我试图在嵌入default.aspx页面的用户控件上显示音乐类别菜单。我运行default.aspx页面时没有出现任何构建错误,但是我的sql查询没有显示任何结果。

我自己运行了sql查询,它显示正确,因此它是关于数据列表从.mdf检索数据以显示它的方式。

以下是我的.cs文件的代码:

using System;
using System.Web;
using System.Web.Configuration;
using System.Data;
using System.Data.SqlClient;

/// <summary>
/// Provides methods for Sql Server database queries
/// Requires database connection string to be located in web.config
/// </summary>
public class MusicStoreSample2008

{
//global scope
private SqlConnection myConnection = new SqlConnection();

//constructor
public MusicStoreSample2008(string ConnectingStringNameInWebConfig)
{
    string connectString = WebConfigurationManager.ConnectionStrings[ConnectingStringNameInWebConfig].ConnectionString;
    myConnection.ConnectionString = connectString;
}

/// <summary>
/// SELECT queries: Copy and modify this method for queries that return
/// multiple rows and/or fields of data. 
/// </summary>
/// <returns>DataTable</returns>
public DataTable fillMenu()
{
    string sql = "select s.styleID, s.StyleName from tblStyles s, tblStyleASIN sa where s.StyleID = sa.StyleID group by s.StyleID, s.StyleName order by s.StyleName";
    DataTable dt = new DataTable();
    //using statement destroys object when operation is complete or throws exception.
    using (SqlCommand cmd = new SqlCommand(sql, myConnection))
    {
        //cmd.Parameters.AddWithValue("@StyleName", StyleName);
        myConnection.Open();
        dt.Load(cmd.ExecuteReader());
        myConnection.Close();
    }
    return dt;
}

public DataTable selectCustID(int custID)
{
    string sql = "select custID, nameF, nameL from tblCustomers where custID = @custID";
    DataTable dt = new DataTable();

    using (SqlCommand cmd = new SqlCommand(sql, myConnection))
    {
        cmd.Parameters.AddWithValue("@custID", custID);
        myConnection.Open();
        dt.Load(cmd.ExecuteReader());
        myConnection.Close();
    }
    return dt;
}

和我的leftmenu.acsx文件的代码:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="leftMenu.ascx.cs" Inherits="leftMenu" %>

<script runat="server">

void page_load()
{
    if (!Page.IsPostBack)
    {
        PopulateMenu();
    }
}

void PopulateMenu()
{
    MusicStoreSample2008 dbMusic = new MusicStoreSample2008("music");
    dlStyles.DataSource = dbMusic.fillMenu();
    dlStyles.DataBind();
}

// Search onTextChanged
public void search(object sender, EventArgs e)
{
    Response.Redirect("SearchBrowse.aspx?query=" + tbSearch.Text);
}

// Search onClick
public void style(object sender, EventArgs e)
{
    Response.Redirect("SearchBrowse.aspx?query=" + tbSearch.Text);
}

</script>

<div class="col-md-3 noPaddingRight">
        <div class="leftMenu equalHeightColumn">
            <div class="menubox">
                <b>Search</b><br />
                <asp:TextBox ID="tbSearch" runat="server" OnTextChanged="search" Width="113px"/><br />
                <asp:Button ID="btSearch" runat="server" OnClick="style" Text="search" />
                <br />
                <br />
                <br />

                <b>Browse</b><br />

                <asp:DataList ID="dlStyles" runat="server">
                    <ItemTemplate>
                        <asp:HyperLink ID="hlMenu" CssClass="menulink" runat="server" 
                        NavigateUrl='<%# Eval("StyleID", "SearchBrowse.aspx?style={0}") %>'
                        Text = '<%# Eval("StyleName") %>' />
                    </ItemTemplate>
                </asp:DataList>

                <br />
            </div>
        </div>
    </div>

最后是我的web.config的代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<compilation debug="true"/>
</system.web>
<connectionStrings>

<!-- Use Sql Server Express connection string on server, comment it when not in use -->
<!--<add name="customers" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\A05Customers.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>-->
<!--<add name="music" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\MusicStoreSample2008.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>-->

<!-- Use use LocalDB connection string in Visual Studio -->
<add name="customers" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\A05Customers.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
<add name="music" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\MusicStoreSample2008.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>

</connectionStrings>
</configuration>

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

发现它是因为我的ascx文件链接到其他地方而我所要做的就是消除以下内容以解决我的问题:

CodeFile="leftMenu.ascx.cs" Inherits="leftMenu"