执行查询并在数据网格框中填充相同的内容

Posted

技术标签:

【中文标题】执行查询并在数据网格框中填充相同的内容【英文标题】:Execute query and populate the same in datagrid Box 【发布时间】:2020-12-02 00:25:38 【问题描述】:

我有一个 winform 应用程序连接到访问数据库作为数据源,

但在访问中,我使用下面的 SQL 来生成一个名为趋势的查询表:

TRANSFORM Count(Complaint_Number) AS [Total Numbers]
SELECT Nature_of_problem, Count(Complaint_Number) AS [Total Numbers of Issues]
FROM master_table
GROUP BY Nature_of_problem
PIVOT Format(Complaint_Received_On,"mmm") In ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

但我不知道如何在表单加载事件(数据集:CSCdataset)的数据网格框中执行此操作并填充相同的内容,请帮助我。

【问题讨论】:

【参考方案1】:

我想您可以在此处找到有关您的问题的更多信息: How to query MS Access database with C# application? 本帖参考文档:https://docs.microsoft.com/en-us/previous-versions/dotnet/articles/ms971485(v=msdn.10)?redirectedfrom=MSDN

在我的 winform-app 中,我使用 SQL Server。这可能与 Access 数据库的过程相同:

            using System.Data.SqlClient;
            
            //open connection
            //cnnString = $@"Data Source=<yourServer>;Integrated Security=SSPI;Persist Security Info=True;Initial Catalog=<yourDatabase>
            SqlConnection cnn = new SqlConnection(@cnnString);
            cnn.Open();
            
            //execute query
            string exec = $@"<your query>";
            DataSet dataSet = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(exec, cnn);
            adapter.Fill(dataSet); //fill dataset
            cnn.Dispose();

            //read dataset
            dataSet.Tables[0].Rows ...

您可以通过将 cnn 放入 using 语句来增强此代码,如下所示:

using (SqlConnection connection = new SqlConnection(
       connectionString)) 
    try 
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    
    catch (Exception ex)
        //log and/or rethrow or ignore
    

来源:The C# using statement, SQL, and SqlConnection

要将 DataTable 绑定到 DataGridView,只需将 DataTable 分配给 DataGridView 的 DataSource 属性,如下所示:

dataGridView.DataSource = yourDataTable;

希望我的回答对您有所帮助。 干杯

【讨论】:

非常感谢...你确实帮了我很多 很高兴我能帮上忙,如果你愿意,请给我点赞:)

以上是关于执行查询并在数据网格框中填充相同的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何在数据网格视图中显示数据

访问选择查询

获取两个日期时间选择器选择的两天之间的记录,并在 Visual Studio C# 中用它们填充数据网格视图

访问查询/组合框

将列的名称保留在 groupby 中,并在 pandas 数据框中使用 sum

计算数据网格中的条目?