Как улучшить метод поиска данных - PullRequest
0 голосов
/ 04 марта 2019

У меня есть много полей, из которых я пытаюсь получить данные для передачи в базу данных MySQL.

Это метод, который я сейчас использую:

    ...
    PlaceHolder MAIN = Page.FindControl("MAIN_PH") as PlaceHolder;
    HtmlTable tblMain = MAIN.FindControl("Table1") as HtmlTable;
    HtmlTableRow ROW1 = tblMain.FindControl("ROW1") as HtmlTableRow;
    HtmlTableCell R1_CELL = ROW1.FindControl("R1_CELL") as HtmlTableCell;
    TextBox Field1 = R1_CELL.FindControl("Field1") as TextBox;
    HtmlTableRow ROW2 = tblMain.FindControl("ROW2") as HtmlTableRow;
    HtmlTableCell R2_CELL1 = ROW2.FindControl("R2_CELL1") as HtmlTableCell;
    DropDownList Field2= R2_CELL1.FindControl("Field2") as DropDownList;
    HtmlTableCell R2_CELL2 = ROW2.FindControl("R2_CELL2") as HtmlTableCell;
    DropDownList Field3= R2_CELL2.FindControl("Field3") as DropDownList;
    ...

    ...
    MySqlConnection conn = new MySqlConnection();
    conn.ConnectionString = getConnectionString().ToString();
    conn.Open();
    MySqlCommand cmd = new MySqlCommand();
    cmd.Connection = conn;
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "UPDATE_RECORD";
    cmd.Parameters.Clear();
    cmd.Parameters.Add(new MySqlParameter("@FIELD1", Field1.Text)); 
    cmd.Parameters["@FIELD1"].Direction = ParameterDirection.Input;
    cmd.Parameters.Add(new MySqlParameter("@FIELD2", Field2.SelectedValue.ToString())); 
    cmd.Parameters["@FIELD2"].Direction = ParameterDirection.Input;
    cmd.Parameters.Add(new MySqlParameter("@FIELD3", Field3.SelectedValue.ToString()));  
    cmd.Parameters["@FIELD3"].Direction = ParameterDirection.Input;
    ...

I 'Мы смотрели на следующее:

https://stackoverflow.com/a/4955836/11035837

C #, FindControl

https://stackoverflow.com/a/1457615/11035837

, но, похоже, этохорошо, если я должен был сделать отдельный вызов MySQL для значения поля.(Особенно, если я сохранил некоторые данные строки подключения в самих элементах управления в качестве аргументов).

Есть ли лучший способ получить все эти значения?

Что-то вроде:

    Field1= SomeFunction(ControlName).Text
    Field2= SomeFunction(ControlName).SelectedValue

без необходимости писать тот же код выше, что и его собственный метод?

Я, конечно, мог бы написать отдельный метод, который утомительно проверял бы каждый уровень / ветвь элемента управления, и это могло бы все же сэкономить мне некоторое времяв конце концов, но есть ли способ, который может сэкономить мне время сейчас и позже?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...