ASP.NET、C#、MySQL:用存储过程从数据库中取数据

a11xaf1n  于 12个月前  发布在  .NET
关注(0)|答案(1)|浏览(158)

我正在尝试使用C#中的存储过程从MySQL数据库中获取数据。更准确地说,我遵循三层架构;我不知道我在下面的代码中哪里出错了,我已经尝试了所有的可能性,小的帮助将不胜感激。
DataServices层:

public DataSet FetchLoginDetails(string SchoolID)
    {
        object[] objparam = new object[1];
        objparam[0] = new MySqlParameter
        {
            ParameterName = "@SchoolID",
            DbType = System.Data.DbType.String,
            Value =SchoolID
        };

        DataSet dsdataRes = ExecuteQuery("StoredProcedure", objparam);
        return dsdataRes;
    }

企业服务

private ITimeTableRepository ObjTimeTable
    {
        get { return UnityManager.Resolve<ITimeTableRepository>(); }
    }

    public DataSet FetchLoginDetails(string SchoolID)
    {
        return ObjTimeTable.FetchLoginDetails(SchoolID);
    }

BusinessServices.Interfaces

public interface ITimeTableBO
{
    DataSet FetchLoginDetails(string SchoolID);
}

UI .cs

public void LoadLoginDetails(DataSet ds)
{
    if (ds.Tables.Count > 0)
    {
        if (ds.Tables[0].Rows.Count > 0)
        {
            ddlSubject.Items.Clear();

            ListItem item1 = new ListItem();
            item1.Text = "Choose a Subject";
            item1.Value = "-1";

            ddlSubject.Items.Add(item1);

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                ListItem item = new ListItem();
                item.Text = ds.Tables[0].Rows[i]["UserName"].ToString();
                item.Value = ds.Tables[0].Rows[i]["UserName"].ToString();

                ddlSubject.Items.Add(item);
             }
         }
    }
}

ASPX标记:

<asp:DropDownList ID="ddlSubject" runat="server" Width="150px" 
     Height="27px" ClientIDMode="Static" AutoPostBack="true" >
     <asp:ListItem Value="-1" Text="Choose a Subject"></asp:ListItem>
 </asp:DropDownList>

存储过程:

CREATE DEFINER=`root`@`localhost` PROCEDURE `StoredProcedure`(
SchoolID 

VARCHAR(255)
)
BEGIN

select UserName from scoolage_login where SchoolID = 

SchoolID ;

END
emeijp43

emeijp431#

在不查看代码的其他细节的情况下,我假设您无法连接MySQL数据库并从MySQL数据库中检索数据。看看MySqlCommand类。这里也有一些代码示例:
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html
试试这样的方法:

using (MySqlConnection con = new MySqlConnection(yourConnectionString))
    {
        using (MySqlCommand cmd = new MySqlCommand("StoredProcedure", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@SchoolID", SchoolID);

            using (MySqlDataAdapter sda = new MySqlDataAdapter(cmd))
            {
                DataTable dt = new DataTable();
                sda.Fill(dt);
                // Do something with results
            }
        }
    }

也看看这个问题:
calling mysql storedprocedure from c#?

相关问题