C # Linq To SQL, чтобы заполнить DataGrid и получить поля в TextBox - PullRequest
0 голосов
/ 05 марта 2019

В C # я могу легко получить данные из базы данных SQL и поместить их в DataGrid с помощью этого кода:

 private void GetPcListBtn_Click(object sender, RoutedEventArgs e)
    {
        string service = (string)ServiceCB.SelectedValue;          
        comm = new SqlCommand("select T_COLLABORATEURS.CO_IDENT,T_PC.PC_ID,T_PC.PC_NOM,T_PC.PC_MODEL," +
            "T_PC.PC_DATE_MES,T_PC.PC_COMM,T_PC.SERV_ID from T_COLLABORATEURS, T_PC" +
            $" where T_COLLABORATEURS.CO_ID = T_PC.CO_ID and T_PC.SERV_ID = '{service}' ", conn);
        SqlDataAdapter dap = new SqlDataAdapter(comm);
        DataTable dt = new DataTable();
        dap.Fill(dt);
        PC_DT.ItemsSource = dt.DefaultView;
    }

Затем в Datagrid SelectionChanged Event я могу щелкнуть строку, чтобы получить поля данных и поместитьэто в текстовом поле с этим кодом:

// DataGrid SelectionChanged => Fill TexBox

           private void PC_DT_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        if (PC_DT.SelectedItem is DataRowView oData)
        {
            string pcNom = (string)oData["PC_NOM"];
            string pcModel = (string)oData["PC_MODEL"];
            RefPcTxtBox.Text = $"{pcNom} / {pcModel}";
        }
    }

Теперь в другом приложении я хочу использовать Linq To SQL, чтобы сделать то же самое.

Заполнить DataGrid:

// Fill DataGrid
      private void GetPcListBtn_Click(object sender, RoutedEventArgs e)
    {
        string service = (string)ServiceCB.SelectedValue;
        DataClasses1DataContext dc = new DataClasses1DataContext();
        var pcCo = from co in dc.T_COLLABORATEURS
                   join pc in dc.T_PC on co.CO_ID equals pc.CO_ID
                   where pc.SERV_ID == service
                   select new
                   {
                       pc.PC_ID,
                       co.CO_IDENT,
                       pc.PC_NOM,
                       pc.PC_MODEL,
                       pc.PC_DATE_MES,
                       pc.PC_COMM,
                       pc.SERV_ID
                   };
        PC_DT.ItemsSource = pcCo;
    }

Но как теперь я могу заполнить свой TextBox, щелкнув строку DataGrid ??

  private void PC_DT_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
       // How to Fill my Textbox ??
    }

1 Ответ

0 голосов
/ 05 марта 2019

Пожалуйста, попробуйте это.

Первый способ:

// Or whenever grid you want to use please set this type
var Grid = sender as DataGrid; 
if(Grid != null)
{
  textbox  = Grid.FieldName
}

Второй способ:

var currentRow = GridName.SelectedRows;
if(currentRow != null)
{
  textbox  = currentRow .FieldName
}
...