如何:创建和执行返回行的 SQL 语句
若要执行返回行的 SQL 语句,可以运行配置为运行 SQL 语句的 TableAdapter 查询(如 CustomersTableAdapter.Fill(CustomersDataTable))。
如果应用程序不使用 TableAdapter,请调用命令对象上的 ExecuteReader 方法,将其 CommandType 属性设置为 Text。(“命令对象”是指您的应用程序正在使用的 .NET Framework 数据提供程序的特定命令。https://msdn.microsoft.com/zh-cn/library/a6cd7c08(v=vs.110)例如,如果应用程序使用的是用于 SQL Server 的 .NET Framework 数据提供程序,则该命令对象为 SqlCommand。)
下面的代码示例演示如何使用 TableAdapter 或命令对象执行从数据库中返回行的 SQL 语句。有关使用 TableAdapter 和命令进行查询的更多信息,请参见 用数据填充数据集。
使用 TableAdapter 执行返回行的 SQL 语句
此示例演示如何使用 TableAdapter 查询配置向导 创建 TableAdapter 查询,然后提供有关如何声明 TableAdapter 的实例并执行查询的信息。
说明 |
---|
对于在以下说明中使用的某些 Visual Studio 用户界面元素,您的计算机可能会显示不同的名称或位置。这些元素取决于您所使用的 Visual Studio 版本和您所使用的设置。有关更多信息,请参见 Visual Studio 设置。 |
使用 TableAdapter 创建返回行的 SQL 语句
在**“数据集设计器”**中打开一个数据集。有关更多信息,请参见如何:在数据集设计器中打开数据集。
如果还没有 TableAdapter,请创建一个。有关创建 TableAdapter 的更多信息,请参见 如何:创建 TableAdapter。
如果在 TableAdapter 中已经具有使用 SQL 语句返回行的查询,请跳转到下一过程“声明 TableAdapter 的实例并执行查询”。否则,请继续步骤 4 来新建返回行的查询。
右击所需的 TableAdapter,然后使用快捷菜单添加查询。
**“TableAdapter 查询配置向导”**将打开。
保留**“使用 SQL 语句”的默认值,然后单击“下一步”**。
保留**“选择(返回行)”的默认值,然后单击“下一步”**。
键入 SQL 语句,或借助**“查询生成器”创建一条 SQL 语句,然后单击“下一步”**。
为该查询提供名称。
完成向导;该查询即被添加到 TableAdapter。
生成您的项目。
声明 TableAdapter 的实例并执行查询
声明一个 TableAdapter 实例,该实例包含要执行的查询。
若要使用设计时工具创建实例,请从**“工具箱”拖动所需的 TableAdapter。(现在,项目中的组件将出现在“工具箱”中,位于与项目名称匹配的标题下。)如果“工具箱”**中没有出现 TableAdapter,则可能需要生成您的项目。
- 或 -
要在代码中创建实例,请使用您的 DataSet 和 TableAdapter 的名称替换下面的代码。
Dim tableAdapter As New DataSetTableAdapters.TableAdapter
说明 TableAdapter 实际上并不在其关联数据集类内。每个数据集在其各自命名空间中均有一个相应的 TableAdapter 集合。例如,如果有一个名为 SalesDataSet 的数据集,就会有一个包含其 TableAdapter 的 SalesDataSetTableAdapters 命名空间。
请按照在代码中调用任何其他方法的方式调用查询。查询是 TableAdapter 上的一个方法。用您的 TableAdapter 和查询的名称替换下面的代码。您还需要传入查询所需的任何参数。如果不能确定查询是否需要参数,或者需要什么参数,请通过 IntelliSense 查看该查询所需的签名。根据查询是否带有参数,代码可能会类似于以下示例之一:
TableAdapter.Query()
TableAdapter.Query(Parameters)
TableAdapter.Query(DataTable, Parameters)
声明 TableAdapter 实例并执行查询的完整代码应与以下内容类似:
Dim tableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter() tableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
NorthwindDataSetTableAdapters.CustomersTableAdapter tableAdapter = new NorthwindDataSetTableAdapters.CustomersTableAdapter(); tableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
使用命令对象执行返回行的 SQL 语句
下面的示例演示如何创建命令并执行返回行的 SQL 语句。有关设置和获取命令参数值的信息,请参见 如何:设置和获取命令对象的参数。
此示例使用 SqlCommand 对象并且需要:
对 System、System.Data、System.Data.SqlClient 和 System.Xml 命名空间的引用。
名为 sqlConnection1 的数据连接。
sqlConnection1 所连接到的数据源中名为 Customers 的表。(否则,您需要一条对您的数据源有效的 SQL 语句。)
使用命令对象以编程方式执行返回行的 SQL 语句
将下面的代码添加到要用于执行该代码的方法中。通过调用命令的 ExecuteReader 方法(例如 ExecuteReader)返回行。此数据返回到 SqlDataReader 中。有关访问 SqlDataReader 中的数据的更多信息,请参见 Retrieving Data Using a DataReader。
Dim sqlConnection1 As New SqlConnection("Your Connection String") Dim cmd As New SqlCommand Dim reader As SqlDataReader cmd.CommandText = "SELECT * FROM Customers" cmd.CommandType = CommandType.Text cmd.Connection = sqlConnection1 sqlConnection1.Open() reader = cmd.ExecuteReader() ' Data is accessible through the DataReader object here. sqlConnection1.Close()
SqlConnection sqlConnection1 = new SqlConnection("Your Connection String"); SqlCommand cmd = new SqlCommand(); SqlDataReader reader; cmd.CommandText = "SELECT * FROM Customers"; cmd.CommandType = CommandType.Text; cmd.Connection = sqlConnection1; sqlConnection1.Open(); reader = cmd.ExecuteReader(); // Data is accessible through the DataReader object here. sqlConnection1.Close();
安全性
此应用程序要求访问数据库和执行 SQL 语句的权限。