在有人投我的問題之前,我想說這是我第一次在C#中使用類,我做了大量的研究,但仍然遇到錯誤。新手在這裏。爲什麼我在C#類中出現這個錯誤?
我想在類文件中插入,刪除,更新和計數語句,以便我的代碼將整齊。
下面是類文件我做了(有當然的研究幫助):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.IO;
using System.Windows.Forms;
namespace classlib
{
public class DBConnect
{
private static MySqlConnection mycon;
private string server;
private string database;
private string uid;
private string password;
public DBConnect()
{
Initialize();
}
private void Initialize()
{
server = "localhost";
database = "restaurantdb";
uid = "user";
password = "root";
string connectionString;
connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";";
mycon = new MySqlConnection(connectionString);
}
private static bool OpenConnection()
{
try
{
mycon.Open();
return true;
}
catch (MySqlException ex)
{
switch (ex.Number)
{
case 0:
MessageBox.Show("Cannot connect to server. Contact administrator");
break;
case 1045:
MessageBox.Show("Invalid username/password, please try again");
break;
}
return false;
}
}
private static bool CloseConnnection()
{
try
{
mycon.Close();
return true;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
return false;
}
}
public static void Insert(string query)
{
if (OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, mycon);
cmd.ExecuteNonQuery();
CloseConnnection();
}
}
public static void Update(string query)
{
if (OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand();
cmd.CommandText = query;
cmd.Connection = mycon;
cmd.ExecuteNonQuery();
CloseConnnection();
}
}
public static void Delete(string query)
{
if (OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, mycon);
cmd.ExecuteNonQuery();
CloseConnnection();
}
}
public static int Count(string query)
{
int count = -1;
if (OpenConnection() == true)
{
MySqlCommand cmd = new MySqlCommand(query, mycon);
count = int.Parse(cmd.ExecuteScalar() + "");
CloseConnnection();
return count;
}
else
{
return count;
}
}
}
}
我只是想喜歡在某種形式的計數法。這裏是我的代碼:
MessageBox.Show("NUMBER OF ACCOUNTS IN DATABASE = "+ DBConnect.Count("SELECT count(*) FROM usersettingsdb") +"", "CONFIRMATION");
但我得到的OpenConnection()
方法的類文件上mycon.Open()
行此錯誤:
Object reference not set to an instance of an object.
如何消除上述誤差,並通過調用訪問方法它像這樣DBConnect.MethodName()
?
我沒有完全瞭解類,但我真的想知道如何創建我自己的函數/方法,以保持我的代碼整潔。
_「這是我使用C#類第一次」你如何使用C#不類直到現在_ ?? –
你的問題並不是真正的「如何使用類」 - 它是「爲什麼我會得到這個錯誤」。也許改變你的頭銜以反映_actual_問題? – Oded
@Tim是的,我想 –