时间:2019-03-17 标签:c#windowsforms/basicdatagrid

标签 c# forms

我在使用 C# 时遇到的问题之一是,网上似乎有太多信息,以至于我很难找到最基本问题的正确答案。

我正在尝试做一些简单的事情: 我有一个按钮,单击它,它会查询数据库并在我的 Windows 窗体上填充数据网格。

    private void button1_Click(object sender, EventArgs e)
    { 
        SqlConnection c = new SqlConnection("Data Source = (local); Integrated Security = true; Initial Catalog = pubs;  "); 

        c.Open();
        // 2
        // Create new DataAdapter
        SqlCommand cmd = c.CreateCommand();
        cmd.CommandText = @" SELECT * FROM Authors ";
        SqlDataReader reader = cmd.ExecuteReader();

        dataGridView1.DataSource = reader;
        dataGridView1.DataBind();
    }

错误 1“System.Windows.Forms.DataGridView”不包含“DataBind”的定义,并且找不到接受“System.Windows.Forms.DataGridView”类型的第一个参数的扩展方法“DataBind”。 ...

我可能缺少一个“using 指令”,但是是哪一个呢?多次 Google 搜索告诉我如何将 Yahoo RSS Feed 绑定(bind)到 gridview 或提供有关“使用指令”的各种晦涩细节。

也许我错误地使用了 SqlDataReader。我应该改用 SqlAdapter 吗?所有关于 Windows C# 表单的优秀在线基础教程都怎么了?几个月前,我发现了一些很棒的教程,但它们似乎已经失去了页面排名,我无法再使用基本的谷歌搜索找到它们。

最佳答案

您没有错过 using 指令;只是 WinForms DataGridView doesn't have a DataBind method 。只需分配 DataSource 就足以使绑定(bind)发生;您也不需要调用方法。

但是,我认为您不能将 SqlDataReader 指定为数据源。根据DataSource property documentation in MSDN ,DataSource 必须是 IList、IListSource、IBindingList 或 IBindingListView。您可能需要将数据加载到 DataTable 或 DataSet(或使用对象关系映射器填充的对象数据源)中,并将其用作 DataSource。

关于时间:2019-03-17 标签:c#windowsforms/basicdatagrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1449773/

相关文章:

c# - 在 WPF/C# 中显示时区。发现夏令时偏移

c# - 像 Java (JSF) 中的 Devexpress 组件?

c# - UWP 连接字符串

javascript - Rails 3 表单问题 : How to create a "select" with "Add New ..." option?

php - 将参数从实体传递到 query_builder

javascript - form.on ('submit' ) 不会在 form.submit() 之前触发

c# - 从用户控件内部向 tabcontrol 添加选项卡

c# - 返回 Timer 的处理方法

Javascript - 将文本添加到可以添加但不能删除的表单字段

javascript - 在 Flash 中自动填写表单中的电子邮件/网站/地址?