Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 绑定后,数据源中的值未显示在gridview中_C#_.net_Winforms_Gridview_Dataset - Fatal编程技术网

C# 绑定后,数据源中的值未显示在gridview中

C# 绑定后,数据源中的值未显示在gridview中,c#,.net,winforms,gridview,dataset,C#,.net,Winforms,Gridview,Dataset,以下代码在表单加载事件中将自动生成列设置为true: gvTables.AutoGenerateColumns = true; 以下是绑定gridviewgvTables的代码: Query ="select name from sys.tables"; DataSet tablesDataSet = new DataSet("TableData"); OleDbDataAdapter tablesDataAdaptor = new OleDbDataAdapter(Query, this

以下代码在
表单加载
事件中将
自动生成列
设置为true:

gvTables.AutoGenerateColumns = true;
以下是绑定
gridview
gvTables
的代码:

Query ="select name from sys.tables";  
DataSet tablesDataSet = new DataSet("TableData");
OleDbDataAdapter tablesDataAdaptor = new OleDbDataAdapter(Query, this.Connection);
tablesDataAdaptor.Fill(tablesDataSet);
gvTables.DataSource = tablesDataSet;

代码运行良好。即使数据已被检索到
数据集
表格数据集
,但值未显示在
gridview
控件中。

在代码后调用以下函数

gvTables.SetDataBinding(tablesDataSet , "Data");

我找到了这个问题的答案。解决方案以有序的方式发布在下面:

1)
类中新变量的声明如下所示:

private DataSet _Records = null;    
2) 设置新变量的
属性

public DataSet Records
{ get { return this._Records; } set { this._Records = value; } }
2) 以下是单击事件中的代码:

Query ="select name from sys.tables";  

GetDataSetForQuery(Query);//Set the data set using GetDataSetForQuery(Query) method
BindingSource bs = new BindingSource();
bs.Datasource = this.Records.Tables[0] ;
gvTables.Datasource = bs;
4) 以下是
GetDataSetForQuery(stringsqlquery)
方法的代码:

    private bool GetDataSetForQuery(string sqlQuery)
    {
        try
        {
            DataSet ds = new DataSet();
            OleDbDataAdapter da = new OleDbDataAdapter(sqlQuery, this.Connection);
            da.Fill(ds);
            this.Records = ds;
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
        finally { }
    }

你在使用asp.net吗?@RoyiNamir请看我的answer@EhsanUllah不,我正在使用Windowsforms@Priscy设置autogeneratecolumns=true并查看result@EhsanUllah我编辑了我的帖子谢谢你的评论。这是一个答案。我只是将他重定向到它的来源。将其作为评论发布,然后更改为答案。添加了前面的语句作为注释。