各位前輩好:
我對物件導向概念不熟,因為想把連接資料庫,用物件導向的方式,避免程式重複,所以改了如下,但執行到此行就會產生錯誤,資料庫也的確開啟了,但會產生以下錯誤訊息,不知道有何方法可以解決?
OleDbDataReader reader = checkempty.ExecuteReader();
//System.InvalidOperationException: 'ExecuteReader 必須有開啟與可用的 Connection。連接目前的狀態已關閉。'
另外想請問 OleDbConnection Database_mdb() 是指覆寫的意思嗎?
internal class Insertdata: Database 原本用public 不行改成internal才可以,不知道為什麼會有錯誤
CS0060 不一致的存取範圍: 基底類別 'Database' 比類別 'Form1.Insertdata' 的存取範圍小 sendermail F:\sendermail_V10_20221225\sendermail\Form1.cs 138 使用中
謝謝各位大神
Database 類別 獨立一個檔
class Database
{
public OleDbConnection Database_mdb()
{
DataTable myDataTable = new DataTable();
var DBPath = Application.StartupPath + @"\database\email.mdb";
return new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + DBPath);
}
}
internal class Insertdata: Database
{
public void Indata(Form1 f1)
{
FunctionTool FunctionTool = new FunctionTool();//函式庫
Database_mdb().Open();
string txtempty = "select * from euser";
OleDbCommand checkempty = new OleDbCommand(txtempty,Database_mdb());
OleDbDataReader reader = checkempty.ExecuteReader();
//System.InvalidOperationException: 'ExecuteReader 必須有開啟與可用的 Connection。連接目前的狀態已關閉。'
}
internal class Insertdata: Database 原本用public 不行改成internal才可以,不知道為什麼會有錯誤
CS0060 不一致的存取範圍: 基底類別 'Database' 比類別 'Form1.Insertdata' 的存取範圍小 sendermail F:\sendermail_V10_20221225\sendermail\Form1.cs 138 使用中
如果你單純寫一個 class Database , 預設是 private。
Database 存取範圍太小,導致 Insertdata 去繼承的時候,無法去存取