winform+sqlserver实现多表查询并展示不同表字段,表结构创建,数据使用dategreadview展示,具体实现过程以及代码
时间: 2024-04-11 12:33:20 浏览: 179
C#winform显示数据库表的数据
要实现在 WinForm 中使用 SQL Server 进行多表查询并展示不同表字段,您需要先创建表结构,然后插入数据,最后在 WinForm 中展示数据。以下是一个示例的实现过程和代码:
步骤 1: 创建表结构
在 SQL Server 中创建两个表,示例如下:
```sql
CREATE TABLE Customers (
CustomerID int PRIMARY KEY,
CustomerName varchar(255),
Address varchar(255)
)
CREATE TABLE Orders (
OrderID int PRIMARY KEY,
CustomerID int,
OrderDate date,
TotalAmount decimal(10, 2)
)
```
步骤 2: 插入数据
向上述两个表中插入一些示例数据,示例如下:
```sql
INSERT INTO Customers (CustomerID, CustomerName, Address)
VALUES (1, 'John Doe', '123 Main St')
INSERT INTO Customers (CustomerID, CustomerName, Address)
VALUES (2, 'Jane Smith', '456 Elm St')
INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES (1, 1, '2022-01-01', 100.00)
INSERT INTO Orders (OrderID, CustomerID, OrderDate, TotalAmount)
VALUES (2, 2, '2022-02-01', 200.00)
```
步骤 3: 在 WinForm 中展示数据
在 WinForm 中添加一个 DataGridView 控件,并在 Form_Load 事件中编写代码来连接数据库、执行查询,并将结果绑定到 DataGridView 控件上。
```csharp
using System;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace WinFormApp
{
public partial class MainForm : Form
{
private string connectionString = "Data Source=your_server_name;Initial Catalog=your_database_name;User ID=your_username;Password=your_password;";
public MainForm()
{
InitializeComponent();
}
private void MainForm_Load(object sender, EventArgs e)
{
// 连接数据库
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
// 执行查询
string query = "SELECT c.CustomerName, o.OrderDate, o.TotalAmount FROM Customers c INNER JOIN Orders o ON c.CustomerID = o.CustomerID";
SqlCommand command = new SqlCommand(query, connection);
SqlDataReader reader = command.ExecuteReader();
// 绑定数据到 DataGridView
dataGridView1.DataSource = reader;
}
}
}
}
```
确保您将连接字符串中的服务器名、数据库名、用户名和密码替换为实际值。此外,还需要将 Form_Load 事件与 MainForm 的 Load 事件关联,可以通过在设计器中选择 MainForm 控件,然后在属性窗口中选择 Load 事件并关联到 MainForm_Load 方法。
以上就是在 WinForm 中实现多表查询并展示不同表字段的具体实现过程和代码。在运行应用程序时,DataGridView 控件将显示来自 Customers 和 Orders 表的数据,并且只显示 CustomerName、OrderDate 和 TotalAmount 字段的数据。
阅读全文