为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决我的代码中的当前问题?

如何解决我的代码中的当前问题?

C#
Cats萌萌 2022-11-21 16:13:54
我很难确定这段代码中的具体问题是什么。我是初学者,我还在学习 mysql 和 c#。我该如何解决这个问题?else{    int countMemberCat = 0;    helper.openConnection();    string query2 = "SELECT Count (*) as 'NoOfMembershipRate' FROM membershiprate WHERE memberrate_desc = @mdesc";    MySqlCommand cmd2 = new MySqlCommand(query2, helper.getConnection());    cmd2.Parameters.AddWithValue("mdesc", txtMemRateDesc.Text);    MySqlDataReader reader = cmd2.ExecuteReader();    while (reader.Read())    {        countMemberCat = int.Parse(reader["NoOfMembershipRate"].ToString());    }    helper.CloseConnection();    if (countMemberCat > 0)    {        MessageBox.Show("Membership Category already exist!");    }    else    {        try        {            double price = double.Parse(txtMemRate.Text);            ClearErrorMessage();            DialogResult dr = MessageBox.Show("Are you sure you want to add new membership category?", "Add?", MessageBoxButtons.YesNo, MessageBoxIcon.Question);            if (dr == DialogResult.Yes)            {                if (helper.openConnection())                {                    string query = "INSERT INTO `membershiprate` (`memberrate_desc`, memberrate_id, `memberrate_price`, memberrate_count) VALUES (@mdesc, memberrate_id, @mprice, memberrate_id)";                    MySqlCommand cmd = new MySqlCommand(query, helper.getConnection());                    cmd.Parameters.AddWithValue("mdesc", txtMemRateDesc.Text);                    cmd.Parameters.AddWithValue("mprice", txtMemRate.Text);                    cmd.ExecuteNonQuery();                    helper.CloseConnection();                    this.Close();                    MessageBox.Show("Successfully added!");                }这就是问题开始的地方。它在这里说它有一个未处理的 mysql 异常。MySql.Data.dll 中出现类型为“MySql.Data.MySqlClient.MySqlException”的未处理异常附加信息:您的 SQL 语法有误;检查与您的 MariaDB 服务器版本对应的手册,了解在第 1 行的“*) 附近使用的正确语法作为‘NoOfMembershipRate’ FROM membershiprate WHERE memberrate_desc =‘Adult’”
查看完整描述

1 回答

?
忽然笑

TA贡献1806条经验 获得超5个赞

我认为下面这行有问题。


 string query = "INSERT INTO `membershiprate` (`memberrate_desc`, memberrate_id, `memberrate_price`, memberrate_count) VALUES (@mdesc, memberrate_id, @mprice, memberrate_id)";

插入查询中未设置 memberrate_id 和 memberrate_count 值。


所以,请在检查后插入两列。


string query = "INSERT INTO `membershiprate` (`memberrate_desc`, `memberrate_price`) VALUES (@mdesc,  @mprice)";

 MySqlCommand cmd = new MySqlCommand(query, helper.getConnection());

                            cmd.Parameters.AddWithValue("mdesc", txtMemRateDesc.Text);

                            cmd.Parameters.AddWithValue("mprice", txtMemRate.Text);


                            cmd.ExecuteNonQuery();

                            helper.CloseConnection();



                            this.Close();

                            MessageBox.Show("Successfully added!");

请检查此解决方案。


查看完整回答
反对 回复 2022-11-21
  • 1 回答
  • 0 关注
  • 92 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信