[英]`DataTable` does not contain a definition for 'Fill' - c#
我不明白为什么在阅读有关.Fill()
文档后出现错误。 我是否错过了导致此错误返回的内容?
protected void FillData()
{
using (SqlConnection connection = new SqlConnection(@"Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename= C:\Users\home\Documents\C# Programs\shop\Database.mdf ;Integrated Security = True"))
{
connection.Open();
using (SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from Employee", connection))
{
DataTable table = new DataTable();
table.Fill(table);
employeeDataGridView.DataSource = table;
}
}
}
问题出在这行代码
table.Fill(table);
你不能用桌子来填满你的桌子。 正确的语法是
dataAdapter.Fill(table)
您不能以这种方式填充 DataTable,您需要填充 DataAdapter,使用 DataSet,然后设置 DataGridView 以使用它。
using (SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from Employee", connection))
{
var ds = new DataSet();
dataAdapter.Fill(ds);
employeeDataGridView.DataSource = ds.Tables[0];
}
对此进行编码的最简洁方法是:
protected void FillData()
{
using (SqlDataAdapter dataAdapter = new SqlDataAdapter("select * from Employee", @"Data Source = (LocalDB)\MSSQLLocalDB;AttachDbFilename= C:\Users\home\Documents\C# Programs\shop\Database.mdf ;Integrated Security=True"))
{
DataTable table = new DataTable();
dataAdapter.Fill(table);
employeeDataGridView.DataSource = table;
}
}
如果你把你的连接字符串放在一个静态的“全局”变量中,它会变得更整洁
注意事项:
dataAdapter.SelectCommand.Paramaters.Add...
最好将数据集添加到您的项目中(右键单击项目,添加>>新项目,选择数据集 - 它为您提供看起来像数据库可视化设计表面的东西,您可以向其中添加查询,创建成为可以成为组件的数据表被添加到您的表单/自动创建数据绑定控件)并创建强类型数据表和表适配器
比这更好的替代方法是使用 Dapper 和强类型 POCO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.