C#:无法以编程方式填充 DataGridView

2024-03-15

我没有使用设计器,而是尝试以编程方式填充我放在 Winform 上的 DataGridView。当我查看调试器下的表格时,它具有正确的列和行数。问题是网格在我的表单上显示为空的灰色框。当我通过 VS 2008 Designer 将网格绑定到数据库时,它工作得很好。我怎样才能找到问题所在?

UPDATE

我几乎从这个中得到了这个MSDN 文章 http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx

UPDATE

除了将网格放到 Winform 上之外,我还需要在设计器中做任何事情吗?

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SQLite;
using System.Windows.Forms;

namespace CC
{
    public partial class Form1 : Form
    {

        private BindingSource bindingSource1 = new BindingSource();
        private SQLiteDataAdapter dataAdapter = new SQLiteDataAdapter();

        public Form1()
        {
            InitializeComponent();
            dataGridView1 = new DataGridView();

            this.Load += new System.EventHandler(Form1_Load);
            this.Text = "Cars";
        }

        private void Form1_Load(object sender, EventArgs e)
        {

            dataGridView1.DataSource = bindingSource1;
            GetData("select * from Cars");


        }

        private void GetData(string selectCommand)
        {
            string dbPath = "c:\\temp\\cars.db";

            try
            {

                var connectionString = "Data Source=" + dbPath + ";Version=3";

                dataAdapter = new SQLiteDataAdapter(selectCommand, connectionString);

                SQLiteCommandBuilder commandBuilder = new SQLiteCommandBuilder(dataAdapter);


                DataTable table = new DataTable();
                table.Locale = System.Globalization.CultureInfo.InvariantCulture;
                dataAdapter.Fill(table);
                bindingSource1.DataSource = table;

                // Resize the DataGridView columns to fit the newly loaded content.
                dataGridView1.AutoResizeColumns(
                    DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
            }
            catch (SqlException)
            {
                MessageBox.Show("To run this example, replace the value of the " +
                    "connectionString variable with a connection string that is " +
                    "valid for your system.");
            }
        }


    }
}

我认为您需要指定 DataMember 属性。而且我认为您不需要绑定源对象,直接可以将 DataTable 绑定到 DataGridView 控件。

我附上一段代码,有助于将 gridview 控件与 SQL Server 数据库绑定,它对我来说效果很好。

using(SqlDataAdapter sqlDataAdapter = 
    new SqlDataAdapter("SELECT * FROM Table1",
        "Server=.\\SQLEXPRESS; Integrated Security=SSPI; Database=SampleDb"))
{
    using (DataTable dataTable = new DataTable())
    {
        sqlDataAdapter.Fill(dataTable);
        this.dataGridView1.DataSource = dataTable;
    }
}

抱歉,我没有安装 SQLite :(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#:无法以编程方式填充 DataGridView 的相关文章

随机推荐

  • 显示日期格式[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想显示 2 March 2011
  • 如何在python中将文件保存到特定目录?

    目前 我正在使用此代码来保存下载的文件 但它将它们放在运行它的同一文件夹中 r requests get url with open file name pdf wb as f f write r content 如何将下载的文件保存到我选
  • 如何快速找到接口方法的实现? [复制]

    这个问题在这里已经有答案了 有没有一种快速方法可以找到接口的方法 属性 等的所有实现 而不是引用 这是一些示例代码 public class SomeClass IBaseClass public Int32 GetInt return 1
  • 在多语言操作系统上使用 Hyperic SIGAR 时出现“java.library.path 中没有 sigar-x86-winnt.dll”错误

    我在用金丝桃 SIGAR http www hyperic com products sigar库作为我的安装程序中的第三方库 我的安装程序将所有第三个 lib 文件解压到 TEMP user 文件夹中 在英语操作系统上一切都很好 但是当我
  • 使用 NLTK 和德语语料库从名词获取性别

    我正在尝试 NTLK 我的问题是图书馆是否可以检测德语名词的性别 我想接收此信息以确定文本是否是性别中立的 浏览此处获取更多信息 https en wikipedia org wiki Gender neutrality in langua
  • 使用 PHPExcel 循环工作表

    我正在使用 PHPExcel 库读取 Excel 文件并对其进行处理 我想循环浏览每个工作表 我检查了文档 我所能找到的只是更改活动工作表索引或仅加载指定的工作表 如何循环浏览所有工作表 感谢您的任何帮助 这是文档的循环示例 供参考
  • C++ 隐式转换运算符

    我正在尝试在 C 中找到一个很好的继承解决方案 我有一个矩形类和一个正方形类 Square 类不能公开继承 Rectangle 因为它不能完全满足矩形的要求 例如 矩形可以单独设置其宽度和高度 这对于正方形来说当然是不可能的 所以 我的困境
  • ORA-01797: 该运算符后面必须跟有 ANY 或 ALL 错误

    当我执行查询时 select from file log f where F DCP SRCE FILENM FK in ABC DEF and F TRANS DT gt to date 08 25 2017 mm dd yyyy and
  • WPF:特定输入文本框(用于电话号码等)

    我不知道这叫什么 但我确信它有一个名字 而且它已经被做过多次了 我有一些文本框 理想情况下只允许特定输入 例如电话号码 银行帐号等内容的框 例如 电话号码输入应采用以下格式 000 000 0000 但我也希望它接受不带区号的号码 例如 0
  • 如何在 Web 服务安装期间更改默认虚拟目录名称?

    我有一个使用 VS2008 创建的 C Web 服务 我有一个部署项目 它创建用于部署的 MSI 是否有某个设置可以更改安装过程中提示用户的默认虚拟目录 我不想更改网络服务的名称来执行此操作 但这不是右键单击安装项目的简单情况吗 selec
  • AWS 您的账户尚未准备好发布消息

    我刚刚使用我的控制台帐户注册了 AWS 论坛 都好 我第一次发帖 我得到 Your account is not ready for posting messages yet 我没有广告拦截器 所以我没有找到任何其他解决方案 任何帮助表示赞
  • 具有多列 data.frames 的两个列表的条件匹配

    我有一个 data frames 列表 每个 data frames 中有多个列 每个 data frame 都有相同的结构 此外 我还有另一个包含多个 data frames 的列表 假设这是两个列表 firstlist lt list
  • Gnu Parallel:嵌套并行

    是否可以在由 gnu parallel 生成的脚本的多次运行中调用 gnu parallel 我有一个运行了 100 秒的 python 脚本顺序的迭代 并且在每次迭代中的某个位置 并行计算 4 个值 使用 gnu 并行 现在我想再次使用
  • 如何在ipython笔记本中设置matplotlib图形默认大小?

    我使用 ipython Notebook pylab inline 来启动 ipython Notebook 显示的 matplotlib 图形尺寸对我来说太大了 我必须手动调整它 如何设置单元格中显示的图形的默认大小 对我来说就像一个魅力
  • 不允许使用字符串类型(在“id”处,值为“@id/bAdd”)

    我收到一条错误消息不允许使用字符串类型 在 id 处 值为 id bAdd 我已经清理了该项目 早些时候一切都正常 我不知道发生了什么 导致了这个错误
  • 如何读取txt文件并将其保存在html中的javascript数组中

    有很多解决方案 但我在 html 网页上的 javascript 中发现很少或根本没有 我的html 文件所在的位置有一个名为sample txt 的数据文件 我的目标是将 txt 文件加载到数组中 该数组可用于创建表格并显示在 html
  • 如何将Entity框架中的DbSet转换为ObjectQuery

    我正在使用 Code First 方法 并遇到一个需要将 DbSet 转换为 ObjectQuery 的问题 这就是我为转换所做的 ObjectContext objectContext IObjectContextAdapter db O
  • 在 C# 中为 0x80000000 == 2147483648,但在 VB.NET 中则不然

    In C 0x80000000 2147483648 outputs True 在 VB NET 中 H80000000 2147483648 outputs False 这怎么可能 这与语言背后的历史有关 C 始终支持无符号整数 您使用的
  • DB2 时间戳选择语句

    我正在尝试运行一个简单的查询 该查询根据时间戳获取数据 如下所示 SELECT FROM
  • C#:无法以编程方式填充 DataGridView

    我没有使用设计器 而是尝试以编程方式填充我放在 Winform 上的 DataGridView 当我查看调试器下的表格时 它具有正确的列和行数 问题是网格在我的表单上显示为空的灰色框 当我通过 VS 2008 Designer 将网格绑定到