[英]object reference not set to an instance of an object. c# and access
您好,我正在使用C#備份訪問數據庫,我有四個組,分別是訪問配置,數據庫選擇,數據庫備份和數據庫還原。 所以在數據配置上,我在數據庫選擇上有數據源文本框用戶ID文本框和密碼文本框,還有數據庫組合框,因此我可以選擇一個,因此我編寫了此代碼
public partial class Form11 : Form
{
private OleDbConnection conn;
private OleDbCommand command;
private OleDbDataReader reader;
string ole = "";
string connectionString = "";
public Form11()
{
InitializeComponent();
}
private void BtnConnect_Click(object sender, EventArgs e)
{
try
{
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source = "+txtDataSource.Text+"; User Id="+txtUserId.Text+"; Password="+txtPassword.Text+"";
conn = new OleDbConnection(connectionString);
conn.Open();
ole = "EXEC sp_databases";
command = new OleDbCommand(ole, conn);
reader = command.ExecuteReader();
cmbDatabases.Items.Clear();
while (reader.Read())
{
cmbDatabases.Items.Add(reader[0].ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
問題是我一直看到對象引用未設置為對象的實例,在這里我使用訪問數據庫,但是在SQL上我沒有這樣的問題,請幫我解決這個問題。 謝謝。
Conn是一個對象,在使用conn.ConnectionString
屬性時尚未實例化
只需翻轉這2行的順序
try
{
conn = new OleDbConnection();
conn.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;" +
@"Data Source = "+txtDataSource.Text+"; User Id="+txtUserId.Text+"; Password="+txtPassword.Text+"";
在您的代碼中,您在實例化連接對象之前正在使用連接。 您首先需要這個:
conn = new OleDbConnection();
該錯誤應該已經在您的代碼中引用了您遇到此問題的一行-通常相對容易從那里追溯以了解什么是null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.