C#Linq To SQL填充数据网格并将字段放入文本框
在C#中,我可以很容易地从SQL数据库中获取数据,并使用以下代码将其放入数据网格中:C#Linq To SQL填充数据网格并将字段放入文本框,c#,sql,linq-to-sql,C#,Sql,Linq To Sql,在C#中,我可以很容易地从SQL数据库中获取数据,并使用以下代码将其放入数据网格中: private void GetPcListBtn_Click(object sender, RoutedEventArgs e) { string service = (string)ServiceCB.SelectedValue; comm = new SqlCommand("select T_COLLABORATEURS.CO_IDENT,T_
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事件中,我可以单击一行以获取字段数据,并将其放入一个文本框中,代码如下:
// 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}";
}
}
现在,在另一个应用程序中,我想使用LINQtoSQL做完全相同的事情
填充数据网格:
// 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;
}
但是现在我如何通过单击DataGrid行来填充文本框
private void PC_DT_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// How to Fill my Textbox ??
}
请试试这个
第一种方式:
// 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
}
第二种方式:
// 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
}
您好,谢谢您的回答,但在第一种情况下,我得到了一个错误:“FieldName”在当前上下文中不存在FieldName表示文本框中显示的字段Ex:-Name(FieldName),然后var aa=Grid.Name