Я пытаюсь найти способ сделать следующий код в CellValueChanged, CellEndEdit или SelectionChanged в DataGridView, но, к сожалению, «изменения» всегда кажутся пустыми, я искал разные посты, и то, что было рекомендовано, было действительно, чтобы использовать CellValueChanged, CellEndEdit или SelectionChanged, но я не смог добиться того, что я хочу:
private void control_RowValidated(object sender, DataGridViewCellEventArgs e)
{
DataGridView dataGridViewReferer = this.Controls.Find(dataGridViewSender, true).FirstOrDefault() as DataGridView;
DataTable changes = ((DataTable)dataGridViewReferer.DataSource).GetChanges();
if (changes != null)
{
conn = new MySqlConnection(connStr);
conn.Open();
command = new MySqlCommand(@"SELECT * from item WHERE id_type=@param_0001 and id_parent=@param_0002", conn);
command.Parameters.AddWithValue("@param_0001", 5);
command.Parameters.AddWithValue("@param_0002", 2);
commandInsert = new MySqlCommand(@"INSERT INTO logbook.item
(id_type,id_parent,column0001,column0002,column0003,column0004,column0005,column0006,column0007,column0008,column0009,column0010,column0011,column0012,
column0013,column0014,column0015,column0016,column0017,column0018,column0019,column0020,column0021,column0022,column0023,column0024,column0025,
column0026,column0027,column0028,column0029,column0030,column0031,column0032,column0033,column0034,column0035,column0036,column0037,column0038,
column0039,column0040,column0041,column0042,column0043,column0044,column0045,column0046,column0047,column0048,column0049,column0050)
VALUES
(@id_type,@id_parent,@column0001,@column0002,@column0003,@column0004,@column0005,@column0006,@column0007,@column0008,@column0009,@column0010,
@column0011,@column0012,@column0013,@column0014,@column0015,@column0016,@column0017,@column0018,@column0019,@column0020,@column0021,@column0022,
@column0023,@column0024,@column0025,@column0026,@column0027,@column0028,@column0029,@column0030,@column0031,@column0032,@column0033,@column0034,
@column0035,@column0036,@column0037,@column0038,@column0039,@column0040,@column0041,@column0042,@column0043,@column0044,@column0045,@column0046,
@column0047,@column0048,@column0049,@column0050)", conn);
commandInsert.Parameters.AddWithValue("@id_type", 5);
commandInsert.Parameters.AddWithValue("@id_parent", 2);
commandInsert.Parameters.Add("@column0001", MySqlDbType.LongText, 15, "column0001");
commandInsert.Parameters.Add("@column0002", MySqlDbType.LongText, 15, "column0002");
commandInsert.Parameters.Add("@column0003", MySqlDbType.LongText, 15, "column0003");
commandInsert.Parameters.Add("@column0004", MySqlDbType.LongText, 15, "column0004");
commandInsert.Parameters.Add("@column0005", MySqlDbType.LongText, 15, "column0005");
commandInsert.Parameters.Add("@column0006", MySqlDbType.LongText, 15, "column0006");
commandInsert.Parameters.Add("@column0007", MySqlDbType.LongText, 15, "column0007");
commandInsert.Parameters.Add("@column0008", MySqlDbType.LongText, 15, "column0008");
commandInsert.Parameters.Add("@column0009", MySqlDbType.LongText, 15, "column0009");
commandInsert.Parameters.Add("@column0010", MySqlDbType.LongText, 15, "column0010");
commandInsert.Parameters.Add("@column0011", MySqlDbType.LongText, 15, "column0011");
commandInsert.Parameters.Add("@column0012", MySqlDbType.LongText, 15, "column0012");
commandInsert.Parameters.Add("@column0013", MySqlDbType.LongText, 15, "column0013");
commandInsert.Parameters.Add("@column0014", MySqlDbType.LongText, 15, "column0014");
commandInsert.Parameters.Add("@column0015", MySqlDbType.LongText, 15, "column0015");
commandInsert.Parameters.Add("@column0016", MySqlDbType.LongText, 15, "column0016");
commandInsert.Parameters.Add("@column0017", MySqlDbType.LongText, 15, "column0017");
commandInsert.Parameters.Add("@column0018", MySqlDbType.LongText, 15, "column0018");
commandInsert.Parameters.Add("@column0019", MySqlDbType.LongText, 15, "column0019");
commandInsert.Parameters.Add("@column0020", MySqlDbType.LongText, 15, "column0020");
commandInsert.Parameters.Add("@column0021", MySqlDbType.LongText, 15, "column0021");
commandInsert.Parameters.Add("@column0022", MySqlDbType.LongText, 15, "column0022");
commandInsert.Parameters.Add("@column0023", MySqlDbType.LongText, 15, "column0023");
commandInsert.Parameters.Add("@column0024", MySqlDbType.LongText, 15, "column0024");
commandInsert.Parameters.Add("@column0025", MySqlDbType.LongText, 15, "column0025");
commandInsert.Parameters.Add("@column0026", MySqlDbType.LongText, 15, "column0026");
commandInsert.Parameters.Add("@column0027", MySqlDbType.LongText, 15, "column0027");
commandInsert.Parameters.Add("@column0028", MySqlDbType.LongText, 15, "column0028");
commandInsert.Parameters.Add("@column0029", MySqlDbType.LongText, 15, "column0029");
commandInsert.Parameters.Add("@column0030", MySqlDbType.LongText, 15, "column0030");
commandInsert.Parameters.Add("@column0031", MySqlDbType.LongText, 15, "column0031");
commandInsert.Parameters.Add("@column0032", MySqlDbType.LongText, 15, "column0032");
commandInsert.Parameters.Add("@column0033", MySqlDbType.LongText, 15, "column0033");
commandInsert.Parameters.Add("@column0034", MySqlDbType.LongText, 15, "column0034");
commandInsert.Parameters.Add("@column0035", MySqlDbType.LongText, 15, "column0035");
commandInsert.Parameters.Add("@column0036", MySqlDbType.LongText, 15, "column0036");
commandInsert.Parameters.Add("@column0037", MySqlDbType.LongText, 15, "column0037");
commandInsert.Parameters.Add("@column0038", MySqlDbType.LongText, 15, "column0038");
commandInsert.Parameters.Add("@column0039", MySqlDbType.LongText, 15, "column0039");
commandInsert.Parameters.Add("@column0040", MySqlDbType.LongText, 15, "column0040");
commandInsert.Parameters.Add("@column0041", MySqlDbType.LongText, 15, "column0041");
commandInsert.Parameters.Add("@column0042", MySqlDbType.LongText, 15, "column0042");
commandInsert.Parameters.Add("@column0043", MySqlDbType.LongText, 15, "column0043");
commandInsert.Parameters.Add("@column0044", MySqlDbType.LongText, 15, "column0044");
commandInsert.Parameters.Add("@column0045", MySqlDbType.LongText, 15, "column0045");
commandInsert.Parameters.Add("@column0046", MySqlDbType.LongText, 15, "column0046");
commandInsert.Parameters.Add("@column0047", MySqlDbType.LongText, 15, "column0047");
commandInsert.Parameters.Add("@column0048", MySqlDbType.LongText, 15, "column0048");
commandInsert.Parameters.Add("@column0049", MySqlDbType.LongText, 15, "column0049");
commandInsert.Parameters.Add("@column0050", MySqlDbType.LongText, 15, "column0050");
commandUpdate = new MySqlCommand(@"UPDATE logbook.item
SET
id_item = @id_item,id_type = @id_type,id_parent = @id_parent,column0001 = @column0001,column0002 = @column0002,column0003 = @column0003,
column0004 = @column0004,column0005 = @column0005,column0006 = @column0006,column0007 = @column0007,column0008 = @column0008,column0009 = @column0009,
column0010 = @column0010,column0011 = @column0011,column0012 = @column0012,column0013 = @column0013,column0014 = @column0014,column0015 = @column0015,
column0016 = @column0016,column0017 = @column0017,column0018 = @column0018,column0019 = @column0019,column0020 = @column0020,column0021 = @column0021,
column0022 = @column0022,column0023 = @column0023,column0024 = @column0024,column0025 = @column0025,column0026 = @column0026,column0027 = @column0027,
column0028 = @column0028,column0029 = @column0029,column0030 = @column0030,column0031 = @column0031,column0032 = @column0032,column0033 = @column0033,
column0034 = @column0034,column0035 = @column0035,column0036 = @column0036,column0037 = @column0037,column0038 = @column0038,column0039 = @column0039,
column0040 = @column0040,column0041 = @column0041,column0042 = @column0042,column0043 = @column0043,column0044 = @column0044,column0045 = @column0045,
column0046 = @column0046,column0047 = @column0047,column0048 = @column0048,column0049 = @column0049,column0050 = @column0050
WHERE id_item = @id_item;", conn);
commandUpdate.Parameters.Add("id_item", MySqlDbType.LongText, 15, "id_item");
commandUpdate.Parameters.Add("@id_type", MySqlDbType.LongText, 15, "id_type");
commandUpdate.Parameters.Add("@id_parent", MySqlDbType.LongText, 15, "id_parent");
commandUpdate.Parameters.Add("@column0001", MySqlDbType.LongText, 15, "column0001");
commandUpdate.Parameters.Add("@column0002", MySqlDbType.LongText, 15, "column0002");
commandUpdate.Parameters.Add("@column0003", MySqlDbType.LongText, 15, "column0003");
commandUpdate.Parameters.Add("@column0004", MySqlDbType.LongText, 15, "column0004");
commandUpdate.Parameters.Add("@column0005", MySqlDbType.LongText, 15, "column0005");
commandUpdate.Parameters.Add("@column0006", MySqlDbType.LongText, 15, "column0006");
commandUpdate.Parameters.Add("@column0007", MySqlDbType.LongText, 15, "column0007");
commandUpdate.Parameters.Add("@column0008", MySqlDbType.LongText, 15, "column0008");
commandUpdate.Parameters.Add("@column0009", MySqlDbType.LongText, 15, "column0009");
commandUpdate.Parameters.Add("@column0010", MySqlDbType.LongText, 15, "column0010");
commandUpdate.Parameters.Add("@column0011", MySqlDbType.LongText, 15, "column0011");
commandUpdate.Parameters.Add("@column0012", MySqlDbType.LongText, 15, "column0012");
commandUpdate.Parameters.Add("@column0013", MySqlDbType.LongText, 15, "column0013");
commandUpdate.Parameters.Add("@column0014", MySqlDbType.LongText, 15, "column0014");
commandUpdate.Parameters.Add("@column0015", MySqlDbType.LongText, 15, "column0015");
commandUpdate.Parameters.Add("@column0016", MySqlDbType.LongText, 15, "column0016");
commandUpdate.Parameters.Add("@column0017", MySqlDbType.LongText, 15, "column0017");
commandUpdate.Parameters.Add("@column0018", MySqlDbType.LongText, 15, "column0018");
commandUpdate.Parameters.Add("@column0019", MySqlDbType.LongText, 15, "column0019");
commandUpdate.Parameters.Add("@column0020", MySqlDbType.LongText, 15, "column0020");
commandUpdate.Parameters.Add("@column0021", MySqlDbType.LongText, 15, "column0021");
commandUpdate.Parameters.Add("@column0022", MySqlDbType.LongText, 15, "column0022");
commandUpdate.Parameters.Add("@column0023", MySqlDbType.LongText, 15, "column0023");
commandUpdate.Parameters.Add("@column0024", MySqlDbType.LongText, 15, "column0024");
commandUpdate.Parameters.Add("@column0025", MySqlDbType.LongText, 15, "column0025");
commandUpdate.Parameters.Add("@column0026", MySqlDbType.LongText, 15, "column0026");
commandUpdate.Parameters.Add("@column0027", MySqlDbType.LongText, 15, "column0027");
commandUpdate.Parameters.Add("@column0028", MySqlDbType.LongText, 15, "column0028");
commandUpdate.Parameters.Add("@column0029", MySqlDbType.LongText, 15, "column0029");
commandUpdate.Parameters.Add("@column0030", MySqlDbType.LongText, 15, "column0030");
commandUpdate.Parameters.Add("@column0031", MySqlDbType.LongText, 15, "column0031");
commandUpdate.Parameters.Add("@column0032", MySqlDbType.LongText, 15, "column0032");
commandUpdate.Parameters.Add("@column0033", MySqlDbType.LongText, 15, "column0033");
commandUpdate.Parameters.Add("@column0034", MySqlDbType.LongText, 15, "column0034");
commandUpdate.Parameters.Add("@column0035", MySqlDbType.LongText, 15, "column0035");
commandUpdate.Parameters.Add("@column0036", MySqlDbType.LongText, 15, "column0036");
commandUpdate.Parameters.Add("@column0037", MySqlDbType.LongText, 15, "column0037");
commandUpdate.Parameters.Add("@column0038", MySqlDbType.LongText, 15, "column0038");
commandUpdate.Parameters.Add("@column0039", MySqlDbType.LongText, 15, "column0039");
commandUpdate.Parameters.Add("@column0040", MySqlDbType.LongText, 15, "column0040");
commandUpdate.Parameters.Add("@column0041", MySqlDbType.LongText, 15, "column0041");
commandUpdate.Parameters.Add("@column0042", MySqlDbType.LongText, 15, "column0042");
commandUpdate.Parameters.Add("@column0043", MySqlDbType.LongText, 15, "column0043");
commandUpdate.Parameters.Add("@column0044", MySqlDbType.LongText, 15, "column0044");
commandUpdate.Parameters.Add("@column0045", MySqlDbType.LongText, 15, "column0045");
commandUpdate.Parameters.Add("@column0046", MySqlDbType.LongText, 15, "column0046");
commandUpdate.Parameters.Add("@column0047", MySqlDbType.LongText, 15, "column0047");
commandUpdate.Parameters.Add("@column0048", MySqlDbType.LongText, 15, "column0048");
commandUpdate.Parameters.Add("@column0049", MySqlDbType.LongText, 15, "column0049");
commandUpdate.Parameters.Add("@column0050", MySqlDbType.LongText, 15, "column0050");
mySqlDataAdapter.InsertCommand = commandInsert;
mySqlDataAdapter.UpdateCommand = commandUpdate;
mySqlDataAdapter.SelectCommand = command;
mySqlDataAdapter.Update(changes);
((DataTable)dataGridViewReferer.DataSource).AcceptChanges();
((DataTable)dataGridViewReferer.DataSource).GetChanges();
DataView dataViewSender = new DataView();
DataTable dataTableSender = new DataTable();
((DataTable)dataGridViewReferer.DataSource).Rows.Clear();
mySqlDataAdapter.Fill((DataTable)dataGridViewReferer.DataSource);
dataGridViewReferer.Update();
dataGridViewReferer.Refresh();
}
}
Как лучше всего это сделать, когда я нажимаю на другую ячейку?
Пожалуйста, обратите внимание, что этот код уже работает с событием RowValidated в DataGridView.
Не могли бы вы мне помочь, пожалуйста?
Спасибо за ваше время и помощь, это очень ценится.