Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据列表未显示SQL查询-无生成错误_C#_Sql_Asp.net - Fatal编程技术网

C# 数据列表未显示SQL查询-无生成错误

C# 数据列表未显示SQL查询-无生成错误,c#,sql,asp.net,C#,Sql,Asp.net,我正在尝试在用户控件上显示音乐类别的菜单,该控件嵌入在default.aspx页面中。运行default.aspx页面时,我没有收到任何生成错误,但sql查询的结果都没有显示 我自己运行了sql查询,它显示正确,因此它与数据列表从.mdf检索数据以显示数据的方式有关 以下是my.cs文件的代码: using System; using System.Web; using System.Web.Configuration; using System.Data; using System.Data.

我正在尝试在用户控件上显示音乐类别的菜单,该控件嵌入在default.aspx页面中。运行default.aspx页面时,我没有收到任何生成错误,但sql查询的结果都没有显示

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

以下是my.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>
最后是my 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>

谢谢你的帮助

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

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

尝试使用修改代码,并放置var result=com.ExecuteReader;然后检查结果中是否有数据。然后加载到dt.Loadresult中;