【问题标题】:How to connect MySQL database? this code base,there were no erors. But can not insert data如何连接MySQL数据库?这个代码库,没有错误。但不能插入数据
【发布时间】:2019-06-21 06:24:58
【问题描述】:
using MySql.Data.MySqlClient;
using System.Data;

public String connectionString = @"server=localhost;port=3306;user id=root;database=Product;persistsecurityinfo=True;password=xxxxxx@;";


protected void btnInsert_Click(object sender, EventArgs e)
{
    MySqlConnection mySqlCon = new MySqlConnection(connectionString);

    try
    {
        using (mySqlCon)
        {
            mySqlCon.Open();

            MySqlCommand mySqlCmd = new MySqlCommand("Proc_Store_Products", mySqlCon);
            mySqlCmd.CommandType = CommandType.StoredProcedure;
            mySqlCmd.Parameters.AddWithValue("_productId", Convert.ToInt32(hfProductID.Value == "" ? "0" : hfProductID.Value));
            mySqlCmd.Parameters.AddWithValue("_productCode", txtproductCode.Text.Trim());
            mySqlCmd.Parameters.AddWithValue("_productName", txtproductName.Text.Trim());
            mySqlCmd.Parameters.AddWithValue("_price", Convert.ToDecimal(txtprice.Text.Trim()));
            mySqlCmd.Parameters.AddWithValue("_description", txtdescription.Text.Trim());

            mySqlCmd.ExecuteNonQuery();

            clear();
            lblSuccessMsg.Text = "Submitted Successfully";
        }


    }
    catch (Exception ex)
    {
        lblErrorMsg.Text = ex.Message;
    }

这是SP代码

DELIMITER $$ 
CREATE DEFINER=root@localhost PROCEDURE Proc_Store_Products(
    _productId int, 
    _productCode varchar(20), 
    _productName varchar(40), 
    _price decimal(18,2), 
    _stock int, 
    _description varchar(200)
) BEGIN
IF _productId = 0 then
    INSERT INTO productInfo(productCode,productName,price,stock,description) 
    VALUES(_productCode,_productName,_price,_stock,_description);

else
    UPDATE productInfo
    SET
    productCode = _productCode,
    productName = _productName,
    price = _price,
    stock = _stock,
    description = _description
    WHERE
    productId = _productId;

END IF;
END$$ DELIMITER ;

【问题讨论】:

  • 据我所知,这里没有任何问题。你能显示存储过程的代码吗?你确定没有显示错误吗?您是否使用调试器遵循代码流程?
  • 是..没有错误..下面是存储过程
  • 您好,欢迎您!请阅读how-to-ask pageHow to create a Minimal, Complete, and Verifiable example 以改进您的问题并帮助我们了解您的问题。
  • 好吧,SP 中有 6 个参数,但您只传递了 5 个参数。股票值的参数在哪里?当您尝试执行此代码时,您没有任何类型的错误,这似乎很奇怪。如前所述,我真的建议使用调试器跟踪您的代码。有些事情不像看起来那样
  • 旁注:edit您的问题以添加信息。请勿发布 ANSWER 以添加 SP 代码。

标签: c# mysql asp.net


【解决方案1】:
select * from productinfoProc_Store_ProductsDELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `Proc_Store_Products`(

_productId int,
_productCode varchar(20),
_productName varchar(40),
_price decimal(18,2),
_stock int,
_description varchar(200)

)
BEGIN

    IF _productId = 0 then
        INSERT INTO productInfo(productCode,productName,price,stock,description) 
        VALUES(_productCode,_productName,_price,_stock,_description);

    else
        UPDATE productInfo
        SET
        productCode = _productCode,
        productName = _productName,
        price = _price,
        stock = _stock,
        description = _description
        WHERE
        productId = _productId;

    END IF;



END$$
DELIMITER ;

【讨论】:

  • 请把它放在你的问题文本中,而不是作为答案!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-17
  • 2016-02-21
相关资源
最近更新 更多