如何使用datagrid获取数据库中的某一行数据 (datagrid 获取某一行数据库)
如何使用DataGrid获取数据库中的某一行数据
在许多应用程序中,数据表格是一个必须的功能。 DataGrid控件是一种通过显示来自数据源的数据,使用户能够查看和编辑数据的控件。本文将介绍如何使用DataGrid来获取数据库中的某一行数据。
一、创建数据库
我们需要创建一个数据库,并在其中创建一个表来存储数据。 在本例中,我们将创建一个名为“student”的表,其中包含三个列:id、name和age。在创建完数据库和表之后,我们需要添加一些数据,以便更好地演示如何在DataGrid中获取和显示这些数据。
二、创建WPF应用程序
为了演示如何使用DataGrid来获取数据库中的某一行数据,我们将创建一个新的WPF应用程序。 我们将使用C#编写代码,并使用Visual Studio来创建新的WPF项目。
三、添加引用
在开始编写代码之前,我们需要添加一些引用。我们需要添加System.Data.dll引用。我们需要添加System.Data.SqlClient.dll引用。您可以在解决方案资源管理器中右键单击项目,然后选择属性。在窗口中,选择“引用”标签,并单击“添加引用”按钮。选择System.Data.dll和System.Data.SqlClient.dll,并单击确定。
四、连接到数据库
在WPF应用程序中连接到数据库的方法有很多。 在这里,我们将使用SqlConnection对象打开连接。 这是一个简单的代码示例,它将连接到我们之前创建的学生数据库:
SqlConnection conn = new SqlConnection(@”Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\student.mdf;Integrated Security=True;Connect Timeout=30″);
五、查询数据
现在我们已经连接到数据库。 下一步是查询数据并将其添加到DataGrid中。 在这里,我们将使用SqlDataAdapter对象执行查询操作。 SqlDataAdapter对象用于填充DataSet对象。 我们可以使用SqlDataAdapter对象从数据库中选择数据,并将其填充到DataSet对象中。 下面是一个简单的代码示例:
string query = “SELECT * FROM student”;
SqlDataAdapter adapter = new SqlDataAdapter(query, conn);
DataSet ds = new DataSet();
adapter.Fill(ds, “student”);
六、将数据添加到DataGrid中
现在我们已经将数据填充到DataSet对象中,下一步是将数据添加到DataGrid中。 您可以使用DataGrid的ItemsSource属性将数据源绑定到DataGrid中。 在这里,我们将使用DataSet对象作为数据源,并将DataTable对象绑定到DataGrid中。下面是一个简单的代码示例:
dataGrid.ItemsSource = ds.Tables[“student”].DefaultView;
七、获取DataGrid中选定的行
我们已经将数据填充到DataGrid中。 下一步是获取DataGrid中选定的行。 在这里,我们将使用DataGrid.SelectedCells属性来检索选定的单元格。我们首先获取所选单元格的列和行索引,然后使用这些索引检索行中的数据,如下所示:
DataGridCellInfo cellInfo = dataGrid.SelectedCells[0];
int col = cellInfo.Column.DisplayIndex;
int row = dataGrid.Items.IndexOf(dataGrid.SelectedCells[0].Item);
DataRowView rowView = (DataRowView)dataGrid.Items[row];
string id = rowView[col].ToString();
八、在DataGrid中更新选定的行
我们已经知道如何检索DataGrid中选定的行。 下一步是在DataGrid中更新选定的行。 在这里,我们将使用SqlDataAdapter对象以及SqlCommandBuilder对象来更新数据库中的数据。SqlCommandBuilder对象使用SelectCommand属性自动生成UpdateCommand,DeleteCommand和InsertCommand。 下面是一个简单的代码示例:
SqlDataAdapter adapter = new SqlDataAdapter(“SELECT * FROM student”, conn);
SqlCommandBuilder builder = new SqlCommandBuilder(adapter);
adapter.Update(ds, “student”);
九、结论
我们已经了解了如何使用DataGrid来获取数据库中的某一行数据,以及如何更新数据库中的行。 DataGrid控件非常强大,在许多应用程序中使用广泛。 下面是完整的示例代码,它将连接到数据库,从数据库中检索数据,将数据添加到DataGrid中,并演示如何获取和更新DataGrid中选定的行:
using System.Windows;
using System.Windows.Controls;
using System.Data.SqlClient;
using System.Data;
namespace WpfApp1
{
public partial class MnWindow : Window
{
SqlConnection conn = new SqlConnection(@”Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\student.mdf;Integrated Security=True;Connect Timeout=30″);
SqlDataAdapter adapter;
DataSet ds = new DataSet();
public MnWindow()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
string query = “SELECT * FROM student”;
adapter = new SqlDataAdapter(query, conn);
adapter.Fill(ds, “student”);
dataGrid.ItemsSource = ds.Tables[“student”].DefaultView;
}
private void buttonUpdate_Click(object sender, RoutedEventArgs e)
{
adapter.Update(ds, “student”);
}
private void dataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (dataGrid.SelectedCells.Count > 0)
{
DataGridCellInfo cellInfo = dataGrid.SelectedCells[0];
int col = cellInfo.Column.DisplayIndex;
int row = dataGrid.Items.IndexOf(dataGrid.SelectedCells[0].Item);
DataRowView rowView = (DataRowView)dataGrid.Items[row];
string id = rowView[col].ToString();
textBoxID.Text = id;
}
}
}
}