我正在尝试使用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
1条答案
按热度按时间emeijp431#
在不查看代码的其他细节的情况下,我假设您无法连接MySQL数据库并从MySQL数据库中检索数据。看看
MySqlCommand
类。这里也有一些代码示例:https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-sql-command.html
试试这样的方法:
也看看这个问题:
calling mysql storedprocedure from c#?