请问数据表的Merge方法该如何使用?

shijies 2021-02-15 10:23:33
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataTable dtt;
DataTable dt;


private void button1_Click(object sender, EventArgs e)
{
DataTable dt = new DataTable();
DataColumn comName = new DataColumn("商品名", typeof(string));
DataColumn comPrice = new DataColumn("价格", typeof(int));
DataColumn comInventory = new DataColumn("库存", typeof(int));
dt.Columns.Add("商品名", typeof(string));
dt.Columns.Add("价格", typeof(int));
dt.Columns.Add("库存", typeof(int));

dt.Rows.Add("铅笔", 1, 200);
dt.Rows.Add("文件夹", 6, 50);


dataGridView1.DataSource = dt;

}

private void button2_Click(object sender, EventArgs e)
{
DataTable dtt = new DataTable();
DataColumn comName = new DataColumn("商品名", typeof(string));
DataColumn comPrice = new DataColumn("价格", typeof(int));
DataColumn comInventory = new DataColumn("库存", typeof(int));
dtt.Columns.Add("商品名", typeof(string));
dtt.Columns.Add("价格", typeof(int));
dtt.Columns.Add("库存", typeof(int));

dtt.Rows.Add("铅笔", 3, 600);
dtt.Rows.Add("文件夹", 5, 800);



dataGridView2.DataSource = dtt;

}

private void button3_Click(object sender, EventArgs e)
{
dt.Merge(dtt); //这里出了问题
dataGridView3.DataSource = dt;
}
}
}


以上代码编译能够通过,button1_Click与button2_Click的代码都正常,button3_Click时出现异常,提示信息如下:
************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 WindowsFormsApp1.Form1.button3_Click(Object sender, EventArgs e) 位置 D:\数据表操作\WindowsFormsApp1\WindowsFormsApp1\Form1.cs:行号 62
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


请赐教
...全文
203 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zijiang001 2021-02-18
  • 打赏
  • 举报
回复
局部变量和全局变量,了解一下
shijies 2021-02-18
  • 打赏
  • 举报
回复
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } DataTable dtt; DataTable dt; 这两个变量的范围都是 Form1
shijies 2021-02-15
  • 打赏
  • 举报
回复
dataGridView1中显示出了dt,dataGridView2中显示出了dtt,dataGridView3中没有显示数据表。
兔子-顾问 2021-02-15
  • 打赏
  • 举报
回复
写程序最基本的是要会调试,在出错地方会中断,你首先看看异常类型 System.NullReferenceException: 未将对象引用设置到对象的实例。 如果不懂就多读几次,中文写的很清楚,如果还是不明白,把异常信息拿到搜索引擎搜索一下,看别人如何解决。 你这里的空引用 你自己看看dt或是dtt是不是null 学会调试很关键的,到公司没有同事会帮你调试的,哪怕你写完跑不起来,出bug,别人帮你调试好,领导只会记住你犯了一个错误,另一个同事比你厉害解决了一个问题。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧