一個簡單的通訊錄管理系統,適合畢業設計。
主要實現以下功能
1.系統登錄
2.增加聯繫人
3.修改和刪除聯繫人
4.查找聯繫人
5.系統用戶管理
首先先搭建數據庫。
我這邊使用的版本是sqlserver2014
創建兩個表一個是用戶表。另外一個是聯繫人表
用戶表包含了用戶名,用戶密碼,聯繫人最大值,組別最大值代碼如下
CREATE TABLE Users
(
UserName VARCHAR(50),--用戶名
Password VARCHAR(50),--用戶密碼
ContactMax INT,
GroupMax INT
)
然後創建聯繫人表格包含了基本的信息,其中id的PRIMARY KEY設置爲主鍵,IDENTITY(1,1)設置爲自動增長,代碼如下
CREATE TABLE Contacts
(
Id INT PRIMARY KEY IDENTITY(1,1),
UserName VARCHAR(50),
Groups VARCHAR(50),
Name VARCHAR(50),
WorkUnit VARCHAR(200),
Phone VARCHAR(200),
Email VARCHAR(200),
Photo IMAGE
)
還需要插入一條管理員賬號。這樣子就可以使用這個賬號進行登錄
INSERT INTO dbo.Users
( UserName ,
Password ,
ContactMax ,
GroupMax
)
VALUES ( 'admin' , -- UserName - varchar(50)
'' , -- Password - varchar(50)
10, -- ContactMax - int
10 -- GroupMax - int
)
好了數據庫就已經搭建好了那麼就可以開始編寫程序呢
編寫winfrom代碼
1.創建一個登錄界面frmLogin和一個主界面frmMain
2.創建一個數據庫幫助類Sqlhelp用來實現數據庫操作代碼如下
public static class SqlHelp
{
static string sqlconn = "server=.;DataBase=addressbook;Integrated Security =true;enlist=false";
/// <summary>
/// 根據sql語句獲得數據庫第一行第一列
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql,conn);
conn.Open();
object o = cmd.ExecuteScalar();
conn.Close();
return o;
}
/// <summary>
/// 根據sql語句返回受影響的行數
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int ExecuteNonQuery(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
int o = cmd.ExecuteNonQuery();
conn.Close();
return o;
}
/// <summary>
/// 根據sql語句返回受影響的行數
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static DataTable GetDataTable(string sql)
{
SqlConnection conn = new SqlConnection(sqlconn);
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
DataTable dt = new DataTable();
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
conn.Close();
return dt;
}
}
3.在創建好的登錄窗口上拖放控件實現用戶名和密碼以及登錄按鈕
點擊登錄按鈕的時候執行sql語句查詢賬號和密碼是否正確
/// <summary>
/// 登錄按鈕
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
if (txtUser.Text == "")
{
MessageBox.Show("請輸入用戶名");
}
else
{
//判斷賬號和密碼是否正確
string sql = "select count(1) from Users where UserName='" + txtUser.Text + "' and PassWord='" + txtPwd.Text + "'";
if (Convert.ToInt32(SqlHelp.ExecuteScalar(sql)) > 0)
{
frmMain.User = txtUser.Text;
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("用戶名或者密碼錯誤");
}
}
}
this.DialogResult=DialogResult.OK是將登錄窗體的返回值定義爲OK
返回成功之後那麼就要打開主界面了。
4.修改Program類實現登錄成功打開主窗體
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmLogin frm = new frmLogin();
frm.ShowDialog();
if (frm.DialogResult == DialogResult.OK)
{
Application.Run(new frmMain());
}
}
5.在主界面上增加菜單欄。以及兩個listview