我嘗試製作管理客戶端聯繫人的應用程序。該表格非常非常簡單。有:面板(在這個面板內是帶有名字,電子郵件等的標籤)和一個顯示所有保存在sdf文件中的聯繫人的列表框。我有一個大問題。我想通過另一個類中的方法刷新列表框內容。我將列表框設置爲公共,調試器在項目構建過程中不顯示任何錯誤。加載表單時,會提示此消息(通過try-catch異常):「對象引用未設置爲對象的實例」。我試圖以不同的方式完成這個項目 - 所有內容都寫在一個班級中。下面的代碼:C#錯誤:未將對象引用設置爲對象的實例
database.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlServerCe;
namespace Contacts
{
class Database
{
public static void RefreshListBox()
{
SqlCeConnection connection = null;
try
{
var form1 = Form.ActiveForm as Form1;
connection = new SqlCeConnection("Datasource = C:\\Kontakty.sdf");
connection.Open();
SqlCeCommand command = new SqlCeCommand("SELECT * FROM Contacts", connection);
SqlCeDataReader reader = command.ExecuteReader();
while (reader.Read())
{
form1.listBox1.Items.Add(reader.GetString(0) + " " + reader.GetString(1));
}
}
catch(Exception exc)
{
MessageBox.Show(exc.Message);
}
}
}
Form1.cs的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Contacts
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
Database.RefreshListBox();
}
}
}
有誰知道這裏有什麼不好?
PS:kontakty =觸點(捷克;-)),因爲從1跳轉仍在加載,可能目前還無法看到,因此不活躍
你有沒有試過設置一箇中斷點並逐步通過,直到你看到錯誤? – ccozad
您的try塊中的哪一行會拋出異常? –