gpt4 book ai didi

c# - 将Datatable数据绑定(bind)到Windows窗体的Gridview

转载 作者:行者123 更新时间:2023-11-30 22:20:49 26 4
gpt4 key购买 nike

我搜索了整个 stackoverflow,但找不到适合我的问题的答案。我想将数据表值绑定(bind)到 Windows 窗体中的 datagridview。特别是一个类中的数据表和单独文件中的 Gridview。

这是我的代码。

namespace MyProj
{
public partial class ThisAddIn
{
public string GetDetails()
{
// Some Codes here
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("uid");
dt.Columns.Add("email");

//Some codes here.I just only give a data table part only.

DataRow row = dt.NewRow();

row["id"] = sid;
sid++;

row["uid"] = uid;
row["email"] = e;
dt.Rows.Add(row);
}
}
}

我刚刚尝试添加 Gridview,这是代码。首先我添加 Add -> NewItem -> WindowsForm & 添加为 form1.cs

然后我从工具箱中将 Gridview 添加到这个 form1.cs 类。然后双击 gridview。

这是我的 form1.cs 编码

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
//ThisAddIn th = new ThisAddIn();
this.dataGridView1.Visible = true;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource =dt; // here show dt does not contain the current context.

这两个文件都在同一个命名空间下。当我尝试从一个类创建一个对象时(ThisAddIn th = new ThisAddIn();)然后它显示,

ThisAddIn.ThisAddIn(Microsoft.Office.tools.Outlook Factory factory,IsServiceProvider serviceProvider)

This AddIn does not contain a constructor that takes 0 arguments

我是 c# 的新手,请帮我解决这个问题,如果你能给我一个有解释的解决方案就太好了..

最佳答案

1)GetDetails方法必须返回一个DataTable,所以我把string改成DataTable并返回dt;

public partial class ThisAddIn
{
public DataTable GetDetails()
{
// Some Codes here
DataTable dt = new DataTable();
dt.Columns.Add("id");
dt.Columns.Add("uid");
dt.Columns.Add("email");
DataRow row = dt.NewRow();
row["id"] = sid;
sid++;
row["uid"] = uid;
row["email"] = e;
dt.Rows.Add(row);
return dt;
}
}

2) 请注意我如何实例化 ThisAddIn 类,然后我调用 GetDetails 方法 - 将结果返回到范围在上下文中的 DataTable。

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
ThisAddIn th = new ThisAddIn();
//Declare a DataTable and call to GetDetails
DataTable dt = th.GetDetails();
this.dataGridView1.Visible = true;
dataGridView1.AutoGenerateColumns = false;
dataGridView1.DataSource = dt;
}

3) 实例化 ThisAddIn th = new ThisAddIn(); 时出现错误:

This AddIn does not contain a constructor that takes 0 arguments

要解决这个问题,您需要在实例化类时提供一些值(参数中的参数):

ThisAddIn th = new ThisAddIn(value1, value2, etc)

关于c# - 将Datatable数据绑定(bind)到Windows窗体的Gridview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14794470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com