Qwentor
@Qwentor
Веб-программист

Почему не работает UPDATE?

Почему не работает UPDATE?
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 System.Data.OleDb;
using System.Configuration;

namespace DataBase
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            AutoPartsDataGridView.DataSource = GetAutoPartsList();
        }


        private DataTable GetAutoPartsList()
        {
            DataTable dtAutoParts = new DataTable();

            string connString = ConfigurationManager.ConnectionStrings["DataBase.Properties.Settings.Database1ConnectionString"].ConnectionString;

            using (OleDbConnection con = new OleDbConnection(connString))
            {
                using (OleDbCommand cmd = new OleDbCommand("SELECT * FROM AutoParts", con))
                {
                    con.Open();
                    OleDbDataReader reader = cmd.ExecuteReader();
                    dtAutoParts.Load(reader);
                    con.Close();
                    //dtAutoParts.Columns[0].ColumnMapping = MappingType.Hidden;


                }
            }

            return dtAutoParts;
        }


        private void AutoPartsDataGridView_CellValueChanged_1(object sender, DataGridViewCellEventArgs e)
        {
            string s_id = AutoPartsDataGridView.Rows[e.RowIndex].Cells[0].Value.ToString();
            string col = AutoPartsDataGridView.Columns[e.ColumnIndex].Name;
            string data = AutoPartsDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();

            if (s_id != "")
            {
                string connString = ConfigurationManager.ConnectionStrings["DataBase.Properties.Settings.Database1ConnectionString"].ConnectionString;
                using (OleDbConnection con = new OleDbConnection(connString))
                {
                    string sql = string.Format("UPDATE `AutoParts` SET `{0}` = '{1}' WHERE ID = {2};", col, data, s_id);
                    MessageBox.Show(sql);
                    using (OleDbCommand cmd = new OleDbCommand(sql, con))
                    {
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                

                    }
                }
                
            } else
            {
                string PartName = AutoPartsDataGridView.Rows[e.RowIndex].Cells[1].Value.ToString();
                string PartNumber = AutoPartsDataGridView.Rows[e.RowIndex].Cells[2].Value.ToString();
                string Price = AutoPartsDataGridView.Rows[e.RowIndex].Cells[3].Value.ToString();
                string partAvaible = AutoPartsDataGridView.Rows[e.RowIndex].Cells[4].Value.ToString();
                MessageBox.Show("INSERT");
                if (PartName != "" & PartNumber != "" & Price != "")
                {
                   string sql = string.Format("INSERT INTO `AutoParts`(PartName, PartNumber, Price, partAvaible) VALUES({0}, {1}, {2}, {3})", PartName, PartNumber, Price, partAvaible);
                }
                
            }

            
                    
              
   

            AutoPartsDataGridView.DataSource = GetAutoPartsList();


        }
    }
}


Ошибки не выдает - просто не пишет в базу.
MsgBox с запросом при этом выводит
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
Qwentor
@Qwentor Автор вопроса
Веб-программист
Все, блин, работает. Только при каждом запуске база перезаписывается исходным файлом. Надо было в свойствах файла базы выбрать "Копировать более позднюю версию". Мое незнание Visual Studio.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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