使用DataTable存储数据库表内容的示例

显示效果:

EmployeeID LastName FirstName BirthDate
1 Davolio Nancy 1948-12-8 0:00:00
2 Fuller Andrew 1952-2-19 0:00:00
3 Leverling Janet 1963-8-30 0:00:00
4 Peacock Margaret 1937-9-19 0:00:00
5 Buchanan Steven 1955-3-4 0:00:00
6 Suyama Michael 1963-7-2 0:00:00
7 King Robert 1960-5-29 0:00:00
8 Callahan Laura 1958-1-9 0:00:00
9 Dodsworth Anne 1966-1-27 0:00:00

源代码

void  Page_Load( object  sender, System.EventArgs e)
            
{
                
// 连接字符串及SQL语句
                string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
                
string Sql = "SELECT EmployeeID, LastName, FirstName, BirthDate FROM Employees";

                
// 创建SqlConnection、SqlDataAdapter对象
                SqlConnection thisConnection = new SqlConnection(ConnectionString);
                SqlDataAdapter adapter 
= new SqlDataAdapter(Sql, thisConnection);

                
// 创建DataTable对象
                DataTable table = new DataTable();

                
// 填充数据到DataTable
                adapter.Fill(table);

                
// 将DataTable绑定到DataGrid控件
                myDataGrid.DataSource = table;
                myDataGrid.DataBind();
            }


相关知识:

DataAdapter.Fill 方法  [C#]

DataSet 中添加或刷新行以匹配使用 DataSet 名称的数据源中的行,并创建一个名为“Table”的 DataTable

public abstract int Fill(

   DataSet dataSet

);

参数

dataSet
要用记录和架构(如果必要)填充的 DataSet

返回值

已在 DataSet 中成功添加或刷新的行数。这不包括受不返回行的语句影响的行。

实现

IDataAdapter.Fill

备注

Fill 方法使用关联的 SelectCommand 属性所指定的 SELECT 语句从数据源中检索行。与 SELECT 语句关联的连接对象必须有效,但不需要将其打开。如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。

然后,Fill 操作将行添加到 DataSet 中的目标 DataTable 对象,如果 DataTable 对象不存在,则创建这些对象。当创建 DataTable 对象时,Fill 操作通常只创建列名元数据。但是,如果 MissingSchemaAction 属性设置为 AddWithKey,则还会创建适当的主键和约束。

如果 SelectCommand 返回 OUTER JOIN 的结果,则 DataAdapter 不为生成的 DataTable 设置 PrimaryKey 值。必须显式定义主键,确保正确地解析重复行。有关更多信息,请参见 为表定义主键

如果数据适配器在填充 DataTable 时遇到重复列,它将以“columnname1”、“columnname2”、“columnname3”这种模式命名后面的列。如果传入数据包含未命名的列,它们将按“Column1”、“Column2”的模式放在 DataSet 中。向 DataSet 添加多个结果集时,每个结果集都放在一个单独的表中。将整数值追加到指定的表名从而对其他结果集进行命名(例如“Table”、“Table1”、“Table2”等)。在应用程序中使用列名和表名时应小心,一定不要与这些命名模式发生冲突。

当用于填充 DataSet 的 SELECT 语句(例如批处理 SQL 语句)返回多项结果时,如果其中一项结果包含错误,则将跳过所有后面的结果并且不将其添加到 DataSet 中。

您可以在同一个 DataTable 上多次使用 Fill 方法。如果主键存在,则传入行会与已有的匹配行合并。如果主键不存在,则传入行会追加到 DataTable 中。

注意   当处理返回多项结果的批处理 SQL 语句时,用于 OLE DB 的 .NET Framework 数据提供程序的 FillSchema 的实现只为第一项结果检索架构信息。若要为多项结果检索架构信息,请使用 MissingSchemaAction 设置为 AddWithKeyFill

你可能感兴趣的:(Datatable)