Я пытаюсь получить доступ к DataGridView через controls.find, чтобы обновить базу данных и затем обновить ее sh (это источник данных - DataSet).
Вот код, который у меня сейчас есть:
conn = new MySqlConnection(connStr);
conn.Open();
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;
DataSet dataSetSender = new DataSet();
DataView dataViewSender = new DataView();
DataTable dataTableSender = new DataTable();
DataGridView dataGridViewReferer = new DataGridView();
dataGridViewReferer = this.Controls.Find(dataGridViewSender, true).FirstOrDefault() as DataGridView;
dataViewSender = (DataView)dataGridViewReferer.DataSource;
dataTableSender = dataViewSender.ToTable();
dataSetSender.Tables.Add(dataTableSender);
mySqlDataAdapter.Update(dataSetSender);
conn.Close();
conn.Dispose();
dataGridViewReferer.Update();
dataGridViewReferer.Refresh();
Вставка работает, к сожалению, вместо вставки только одной строки, она вставляет все строки DataGridView каждый раз (обновления также ведут себя так же).
Как отмечают некоторые, Имя DataSet создается в Form_Load, а его имя сохраняется в фактической базе данных.
Цель этого состоит в том, чтобы иметь возможность генерировать DataGridViews во время выполнения и назначать им DataSets таким же образом.
DataGridView создается с помощью нажатия кнопки:
ID = generateID();
dataGridView = new DataGridView();
dataGridView.Name = "dataGridView_" + loadedLogbook_filtered + "_" + ID;
dataGridView.Text = dataGridView.Name;
dataGridView.Location = new Point(8, 32);
dataGridView.Size = new Size(504, 504);
dataGridView.Visible = true;
dataGridView.ContextMenuStrip = contextMenuStrip_main;
dataGridView.MouseDown += new MouseEventHandler(control_MouseDown);
dataGridView.MouseUp += new MouseEventHandler(control_MouseUp);
dataGridView.MouseMove += new MouseEventHandler(control_MouseMove);
dataGridView.MouseClick += new MouseEventHandler(control_MouseClick);
dataGridView.CellValueChanged += new DataGridViewCellEventHandler(control_CellValueChanged);
this.Controls.Add(dataGridView);
ControlMoverOrResizer.Init(dataGridView);
Я не могу найти источник проблемы, и мне потребуется небольшая помощь.
Может кто-нибудь оказать мне некоторую помощь по этой проблеме Пожалуйста?
Спасибо за ваше время и помощь, это очень ценится.
РЕДАКТИРОВАТЬ:
Вот как я создаю DataSet:
DataGridView dataGridViewReferer = this.Controls.Find(dataGridViewSender, true).FirstOrDefault() as DataGridView;
bool form_contextMenuStrip_main_dataSet_setbuttonDataSetSetClicked = false;
using (Form_contextMenuStrip_main_dataSet_set form_contextMenuStrip_main_dataSet_set = new Form_contextMenuStrip_main_dataSet_set())
{
form_contextMenuStrip_main_dataSet_set.ShowDialog(this);
form_contextMenuStrip_main_dataSet_setbuttonDataSetSetClicked = form_contextMenuStrip_main_dataSet_set.buttonDataSetSetClicked;
dataSetToSet = form_contextMenuStrip_main_dataSet_set.dataSetToSet;
if (form_contextMenuStrip_main_dataSet_setbuttonDataSetSetClicked == true)
{
dataSetToSetRefererer = new DataSet();
DataSet dataSetCaller = new DataSet();
conn = new MySqlConnection(connStr);
conn.Open();
mySqlDataAdapter = new MySqlDataAdapter();
command = new MySqlCommand(@"SELECT
*
FROM
item
WHERE
id_type = @param_0001 and friendly_name=@param_0002", conn);
command.Parameters.AddWithValue("@param_0001", 4);
command.Parameters.AddWithValue("@param_0002", dataSetToSet);
mySqlDataAdapter.SelectCommand = command;
mySqlDataAdapter.Fill(dataSetCaller);
conn.Close();
conn.Dispose();
string dataSetToFill = dataSetCaller.Tables[0].Rows[0][4].ToString();
conn = new MySqlConnection(connStr);
conn.Open();
mySqlDataAdapter = new MySqlDataAdapter();
command = new MySqlCommand(@"SELECT
*
FROM
item
WHERE
id_parent = @param_0001", conn);
command.Parameters.AddWithValue("@param_0001", dataSetCaller.Tables[0].Rows[0][0].ToString());
mySqlDataAdapter.SelectCommand = command;
mySqlDataAdapter.Fill(dataSetToSetRefererer);
conn.Close();
conn.Dispose();
dataGridViewReferer.DataSource = dataSetToSetRefererer.Tables[0].DefaultView;
}
}