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)
請賜教
uj5u.com熱心網友回復:
寫程式最基本的是要會除錯,在出錯地方會中斷,你首先看看例外型別System.NullReferenceException: 未將物件參考設定到物件的實體。
如果不懂就多讀幾次,中文寫的很清楚,如果還是不明白,把例外資訊拿到搜索引擎搜索一下,看別人如何解決。
你這里的空參考
你自己看看dt或是dtt是不是null
學會除錯很關鍵的,到公司沒有同事會幫你除錯的,哪怕你寫完跑不起來,出bug,別人幫你除錯好,領導只會記住你犯了一個錯誤,另一個同事比你厲害解決了一個問題。
uj5u.com熱心網友回復:
dataGridView1中顯示出了dt,dataGridView2中顯示出了dtt,dataGridView3中沒有顯示資料表。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/259900.html
標籤:C#
下一篇:屬于我的md5sum程式
