Ошибка после того, как сохраняли информацию в таблице MySQL с формуляра.NET с C#

Привет всему сообществу. Я буду очень пунктуальным. У меня есть проблема во время ввождения данных в компьютер в базу данных mysql с c#.net, связь делает вид то, что хорошо, в самом деле, информация вводит информацию в компьютер, но, когда я проверяю базу данных, оказывается у меня немного различной "mysql.class_color". далее я присоединяю изображения


у меня есть класс связь, эта содержит string связи

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace mysql
{
    //CLASE para conectar con base de datos
    public class Class_conexion
    {
        //METODO -> ObtenerConexion() <- que genera un objeto para conectar a la base de datos
        public static MySqlConnection ObtenerConexion()
        {
            MySqlConnection conectar = new MySqlConnection("server=127.0.0.0; database=database; Uid=root; pwd=*******;");
            conectar.Open();
            return conectar;   
        }
    }
}

у меня есть класс цвет, эта представляет таблицу в DB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace mysql
{
    class Class_Color
    {
        public string Color { get; set; }

        public Class_Color() {}

        public Class_Color(string pColor)
        {
            this.Color = pColor;
        }
    }
}

у меня есть класс crud, что позволяет мне добавлять данные к таблице

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;

namespace mysql
{
    class Class_CRUD
    {
        public static int Agregar(Class_Color pColor)
        {
            int retorno = 0;
            MySqlCommand command = new MySqlCommand(string.Format("insert into color(color) values('{0}')", pColor), Class_conexion.ObtenerConexion());
            retorno = command.ExecuteNonQuery();
            return retorno;
        }
    }
}

в конце концов, у меня есть мой главный файл, откуда instancio классы, когда я нажимаю на кнопку Guardar

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace mysql
{
    public partial class EntradaDatos : Form
    {
        public EntradaDatos()
        {
            InitializeComponent();
        }

        private void button_enviar_Click(object sender, EventArgs e)
        {
            Class_Color pColor = new Class_Color();
            pColor.Color = textBox_color.Text.Trim();
            int resultado = Class_CRUD.Agregar(pColor);

            if(resultado > 0)
            {
                MessageBox.Show("color guardado con exito, eres un campeon!!!");
            }

            else
            {
                MessageBox.Show("No se pudo guardar el color", "PERDEDOR!, cambie de carrera", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
    }
}

проблема: Не добавляют, что текст, который я пишу взамен, присоединяется mysql.class_color

+-------------------+
| color             |
+-------------------+
| mysql.Class_Color |
+-------------------+

Что я врежу??

0
задан 06.02.2019, 15:19
1 ответ

Форма, в которой ты распределяешь стоимость, возвращает ToString() класса вместо стоимости свойства

string.Format("insert into... VALUES ({0})", pcolor.Color);

у тебя есть, что ты помещаешь свойство, как я оценил insert

Кроме того, что ты повторно определишь ToString(), pudes делать это в простом примере

public class Program
{
    public static void Main()
    {
        Class_Color pColor = new Class_Color();
        pColor.Color = "Azul";

        Console.WriteLine(pColor); 
    }   
}


public class Class_Color
{
    public string Color {get;set;}

    public override string ToString()
    {
        return this.Color;
    }
}

снимает override ToString() и ты увидишь, что он возвращает имя класса

0
ответ дан 20.11.2019, 00:06
  • 1
    спасибо за твою помощь, однако я остаюсь, не понимая, я не и размещенный ' override' где-нибудь, к которому он относится с этим, с другой стороны сокращение, которого hiso от кода я не добиваюсь contextulizarla совсем с моим, например: предполагается, что Class_Color pColor = new Class_Color(); pColor.Color = textBox.text должен давать мне стоимость текста, который я написал в text box – Samir Quiceno 06.02.2019, 16:01
  • 2
    именно, потому что ты не добавил override ToString () дело в том, что ты не получаешь стоимость свойства Цвет, я осведомляюсь, что ты знаешь то, что является свойством? если это так, ты должен использовать это в string. Foramt () qu распределяет стоимость стоимости в insert – Leandro Tuttini 06.02.2019, 16:09
  • 3
    Wow! старик @LeandroTuttini, спасибо уже я функционирую!, измените класс цвет добавляя override как это ты предлагаешь и функционируй совершенно! tambié n quedé с frustració n не понимания очень хорошо, как оно функционирует, но уже сам я буду искать, которого они относятся друг к другу это свойств, у меня нет даже идеи об этом. – Samir Quiceno 06.02.2019, 16:38
  • 4
    но в классе уже ты определяешь ее в Color, когда ты используешь get и set, это свойство, ты определяешь что-то, что ты не знаешь, о котором говорится? – Leandro Tuttini 06.02.2019, 16:40
  • 5
    метод класса цвета был таким: public Class_Color (string pColor){this.Color = pColor;} того, что я сделал тогда, было public override string ToString(){return this.Color = Color;} я habí в определенный ранее как creí в который оно функционировало, и правда я признаюсь " , хотя он должен быть шокирующим и я должен кажется глупцом возможному лекторату читать это, что я не понимаю очень хорошо, как оно функционирует, но функционирует ." Уже сам я pondré чтобы исследовать на этом. Правда я - новичок в этом programació n. – Samir Quiceno 06.02.2019, 16:58

Теги

Похожие вопросы