gpt4 book ai didi

asp.net - MySQL/ASP.NET 存储过程

转载 作者:行者123 更新时间:2023-11-29 09:15:11 25 4
gpt4 key购买 nike

希望这不是 ServerFault问题...

我正在努力将项目从 XML 序列化存储数据迁移到 MySQL 数据库。我正在使用 previous question 提供的示例昨天回答了。

使用 phpMyAdmin 和 MySQL Workbench 连接 我创建了一个名为“sprocOrderSelectSingleItem”的存储过程。据我所知,它似乎与 MySQL 配合得很好。当我运行 SHOW CREATE PROCEDURE sprocOrderSelectSingleItem 时,它返回以下内容:

CREATE DEFINER=<code>username</code>@<code>%</code> PROCEDURE <code>sprocOrderSelectSingleItem</code>(IN orderID INTEGER)
BEGIN SELECT * FROM tblOrders WHERE ID=orderID; END

我的协作 ASP.NET 代码是这样的:

public static Order GetItem(int ID){    Order objOrder = null;    using (OdbcConnection objConnection = new OdbcConnection(Utils.ApplicationConfiguration.ConnectionString))    {        OdbcCommand objCommand = new OdbcCommand("sprocOrderSelectSingleItem", objConnection);        objCommand.CommandType = CommandType.StoredProcedure;        objCommand.Parameters.AddWithValue("orderID", ID);        objConnection.Open();        using (OdbcDataReader objReader = objCommand.ExecuteReader())        {            if (objReader.Read())            {                objOrder = FillDataRecord(objReader);            }            objReader.Close();        }        objConnection.Close();    }    return objOrder;}

当我查看该页面时,收到以下错误消息:

错误 [42000] [MySQL][ODBC 5.1 驱动程序][mysqld-5.0.77]您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“sprocOrderSelectSingleItem”附近使用的正确语法

真的没有意识到可能遗漏或出错的地方。我应该/可以运行任何其他测试来确认 MySQL 方面的工作正常吗?我是否缺少在 ASP.NET 中正确传递存储过程调用的步骤?代码在以下行处中断:

using (OdbcDataReader objReader = objCommand.ExecuteReader())

替换行

OdbcCommand objCommand = new OdbcCommand("sprocOrderSelectSingleItem", objConnection);

用这个代替

OdbcCommand objCommand = new OdbcCommand("SELECT * FROM tblOrders WHERE ID=" + ID + ";", objConnection);

一切都按预期进行。

感谢你们提供的任何帮助。

最佳答案

您可以直接使用 ID 参数在 Mysql 中的 sprocOrderSelectSingleItem 上运行执行。它将显示您的 StoredProc 运行正确。

下面是调用存储过程的 C# 示例代码。

OdbcCommand salesCMD = new OdbcCommand("{ CALL SalesByCategory(?) }", nwindConn);
salesCMD.CommandType = CommandType.StoredProcedure;

OdbcParameter myParm = salesCMD.Parameters.Add("@CategoryName", OdbcType.VarChar, 15);
myParm.Value = "Beverages";

OdbcDataReader myReader = salesCMD.ExecuteReader();

查看 OdbcCommand 中的“Call”和“?”用于稍后提供值的参数。

关于asp.net - MySQL/ASP.NET 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com