首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Asp.net C# Mysql使用存储过程从数据库中获取数据

Asp.net C# Mysql使用存储过程从数据库中获取数据
EN

Stack Overflow用户
提问于 2015-11-06 21:40:11
回答 1查看 944关注 0票数 1

我正在尝试使用C#中的存储过程从MySQL数据库中获取数据,更准确地说,我正在遵循三层体系结构。我不确定以下代码中的错误之处,我已经尝试了所有可能的小帮助,将非常感谢。

DataServices层

代码语言:javascript
复制
    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("Storeprociduer", objparam);
        return dsdataRes;

    }

BusinessServices

代码语言:javascript
复制
    private ITimeTableRepository ObjTimeTable
    {
        get { return UnityManager.Resolve<ITimeTableRepository>(); }
    }
    public DataSet FetchLoginDetails(string SchoolID)
    {
        return ObjTimeTable.FetchLoginDetails(SchoolID);
    }

BusnessServices.Interfaces

代码语言:javascript
复制
public interface ITimeTableBO
    {
        DataSet FetchLoginDetails(string SchoolID);
    }

UI .cs

代码语言:javascript
复制
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代码

代码语言:javascript
复制
                        <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>

存储过程

代码语言:javascript
复制
CREATE DEFINER=`root`@`localhost` PROCEDURE `Storeprociduer`(
SchoolID 

VARCHAR(255)
)
BEGIN

select UserName from scoolage_login where SchoolID = 

SchoolID ;


END
EN

回答 1

Stack Overflow用户

发布于 2015-11-06 22:31:37

如果不查看代码的其他细节,我假设您无法连接到MySQL数据库并从其中检索数据。看一下MySqlCommand对象。还有一些代码示例:

https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html

尝试如下所示:

代码语言:javascript
复制
    using (MySqlConnection con = new MySqlConnection(yourConnectionString))
    {
        using (MySqlCommand cmd = new MySqlCommand("Storeprociduer", 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
            }
        }
    }

也可以看看这个SO问题:

calling mysql storedprocedure from c#?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33568148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档