MYSQL C# ошибка при вызове хранимой процедуры

278
19 октября 2017, 08:12

Добрый верчер. Я на C# и MySql делал проект онлайн меню заказа еды. на MYSQl я создал хранимую процедуру:

CREATE PROCEDURE my_pr1 (IN per VARCHAR(12), IN fd VARCHAR(60), IN fdo TEXT, IN pors INT)
BEGIN
INSERT INTO zakaz (persons, food, food_option, parth) VALUES (per, fd, fdo, pors);END

На C# вызиваю:

using MySql.Data.MySqlClient;
namespace menu_mysql
{
public partial class menu : Form
{

    public menu()
    {
        InitializeComponent();
    }
    MySqlConnection connect = new MySqlConnection("datasource=localhost;port=3306;Initial Catalog='testmenu';username=root;password=");
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    }
    private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
        MySqlParameter[] spr = new MySqlParameter[4];
        spr[0] = new MySqlParameter("per", SqlDbType.VarChar);
        spr[0].Value = textBox1.Text;
        spr[1] = new MySqlParameter("fd", SqlDbType.VarChar);
        spr[1].Value = comboBox1.Text;
        spr[2] = new MySqlParameter("fdo", SqlDbType.Text);
        spr[2].Value = textBox2.Text;
        spr[3] = new MySqlParameter("pors", SqlDbType.Int);
        spr[3].Value = comboBox2.Text;
        MySqlCommand comand = new MySqlCommand();
        comand.Connection = connect;
        comand.CommandType = CommandType.StoredProcedure;
        comand.CommandText = "my_sp1";
        comand.Parameters.AddRange(spr);
        connect.Open();
        if (comand.ExecuteNonQuery() == 1)
        {
            MessageBox.Show("Yes");
        }
        else
        {
            MessageBox.Show("No");
        }
        connect.Close();
    }

проблема в том что при запуске VS 2017 Community даёт ошибку что непрописаны значения для:

    if (comand.ExecuteNonQuery() == 1)

вопрос как исправить эту ошибку?

Answer 1

https://www.devart.com/dotconnect/mysql/docs/Parameters.html

Parameters that represent arguments to the procedure must have their Direction property set to Input.

т.е.

Свойство Direction входных параметров сохраненной процедуры должно быть установлено в значение Input.

spr[0].Direction = System.Data.ParameterDirection.Input;
// и т.д.

как подключить combobox2 к зна...

Задайте другой вопрос на эту тему..

READ ALSO
помогите решить задачуууууу [требует правки]

помогите решить задачуууууу [требует правки]

было 5 ящиковв них поровну лежали яблоки

219
C# CUIT “Последнее действие мыши не записано”

C# CUIT “Последнее действие мыши не записано”

Необходимо написать тесты интерфейса на С# используя Coded UI Test

337
Не работают метки для break/continue в C# [требует правки]

Не работают метки для break/continue в C# [требует правки]

Почему не работает метка для continue в этом коде?

302