用C#写一个小区物业管理系统,数据库是MySQL
时间: 2023-06-16 17:04:12 浏览: 85
好的,下面是一个简单的小区物业管理系统的 C# 实现,使用 MySQL 数据库:
首先,你需要安装 MySQL Connector/NET 驱动程序,以便 C# 代码可以访问 MySQL 数据库。可以在这里下载最新的驱动程序:https://dev.mysql.com/downloads/connector/net/
接下来,你需要创建一个名为 `property_management` 的 MySQL 数据库,其中包含两个表:`users` 和 `residents`。`users` 表中包含管理员和工作人员的用户名和密码,`residents` 表中包含居民信息。
下面是 `users` 表的 SQL 创建语句:
```
CREATE TABLE users (
id INT NOT NULL AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
is_admin TINYINT(1) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
```
下面是 `residents` 表的 SQL 创建语句:
```
CREATE TABLE residents (
id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
phone VARCHAR(20) NOT NULL,
address VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
```
接下来,你可以使用 Visual Studio 创建一个新的 C# 控制台应用程序。在 `App.config` 文件中,添加以下 MySQL 连接字符串:
```
<connectionStrings>
<add name="MySqlConnectionString" connectionString="server=localhost;user id=root;password=123456;database=property_management;port=3306"/>
</connectionStrings>
```
然后,你可以使用以下 C# 代码实现小区物业管理系统:
```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
namespace PropertyManagementSystem
{
class Program
{
static void Main(string[] args)
{
bool exit = false;
while (!exit)
{
Console.WriteLine("请选择您的身份:");
Console.WriteLine("1. 管理员");
Console.WriteLine("2. 工作人员");
Console.WriteLine("3. 居民");
Console.WriteLine("4. 退出");
Console.Write("请输入选项:");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
AdminMenu();
break;
case 2:
StaffMenu();
break;
case 3:
ResidentMenu();
break;
case 4:
exit = true;
break;
default:
Console.WriteLine("无效的选项,请重新输入!");
break;
}
}
}
static void AdminMenu()
{
bool exit = false;
while (!exit)
{
Console.WriteLine("管理员菜单:");
Console.WriteLine("1. 添加工作人员");
Console.WriteLine("2. 删除工作人员");
Console.WriteLine("3. 查看工作人员列表");
Console.WriteLine("4. 退出");
Console.Write("请输入选项:");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
AddStaff();
break;
case 2:
DeleteStaff();
break;
case 3:
ViewStaffList();
break;
case 4:
exit = true;
break;
default:
Console.WriteLine("无效的选项,请重新输入!");
break;
}
}
}
static void AddStaff()
{
Console.WriteLine("请输入新工作人员的用户名:");
string username = Console.ReadLine();
Console.WriteLine("请输入新工作人员的密码:");
string password = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "INSERT INTO users (username, password, is_admin) VALUES (@username, @password, 0)";
cmd.Parameters.AddWithValue("@username", username);
cmd.Parameters.AddWithValue("@password", password);
cmd.ExecuteNonQuery();
Console.WriteLine("成功添加工作人员!");
}
static void DeleteStaff()
{
Console.WriteLine("请输入要删除的工作人员的用户名:");
string username = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "DELETE FROM users WHERE username = @username";
cmd.Parameters.AddWithValue("@username", username);
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
Console.WriteLine("成功删除工作人员!");
}
else
{
Console.WriteLine("未找到该工作人员!");
}
}
static void ViewStaffList()
{
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT username FROM users WHERE is_admin = 0";
MySqlDataReader reader = cmd.ExecuteReader();
Console.WriteLine("工作人员列表:");
while (reader.Read())
{
Console.WriteLine(reader[0]);
}
}
static void StaffMenu()
{
Console.WriteLine("工作人员菜单:");
Console.WriteLine("1. 查看居民信息");
Console.WriteLine("2. 修改居民信息");
Console.WriteLine("3. 退出");
Console.Write("请输入选项:");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
ViewResidentInfo();
break;
case 2:
ModifyResidentInfo();
break;
case 3:
break;
default:
Console.WriteLine("无效的选项,请重新输入!");
break;
}
}
static void ViewResidentInfo()
{
Console.WriteLine("请输入要查看的居民的姓名:");
string name = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT name, phone, address FROM residents WHERE name = @name";
cmd.Parameters.AddWithValue("@name", name);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("姓名:" + reader["name"]);
Console.WriteLine("电话:" + reader["phone"]);
Console.WriteLine("地址:" + reader["address"]);
}
else
{
Console.WriteLine("未找到该居民!");
}
}
static void ModifyResidentInfo()
{
Console.WriteLine("请输入要修改的居民的姓名:");
string name = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT name, phone, address FROM residents WHERE name = @name";
cmd.Parameters.AddWithValue("@name", name);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("请输入新的电话号码:");
string phone = Console.ReadLine();
Console.WriteLine("请输入新的地址:");
string address = Console.ReadLine();
reader.Close();
cmd.CommandText = "UPDATE residents SET phone = @phone, address = @address WHERE name = @name";
cmd.Parameters.AddWithValue("@phone", phone);
cmd.Parameters.AddWithValue("@address", address);
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
Console.WriteLine("居民信息修改成功!");
}
else
{
Console.WriteLine("未找到该居民!");
}
}
else
{
Console.WriteLine("未找到该居民!");
}
}
static void ResidentMenu()
{
Console.WriteLine("居民菜单:");
Console.WriteLine("1. 查看个人信息");
Console.WriteLine("2. 修改个人信息");
Console.WriteLine("3. 退出");
Console.Write("请输入选项:");
int choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
ViewPersonalInfo();
break;
case 2:
ModifyPersonalInfo();
break;
case 3:
break;
default:
Console.WriteLine("无效的选项,请重新输入!");
break;
}
}
static void ViewPersonalInfo()
{
Console.WriteLine("请输入您的姓名:");
string name = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT name, phone, address FROM residents WHERE name = @name";
cmd.Parameters.AddWithValue("@name", name);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("姓名:" + reader["name"]);
Console.WriteLine("电话:" + reader["phone"]);
Console.WriteLine("地址:" + reader["address"]);
}
else
{
Console.WriteLine("未找到该居民!");
}
}
static void ModifyPersonalInfo()
{
Console.WriteLine("请输入您的姓名:");
string name = Console.ReadLine();
MySqlConnection conn = new MySqlConnection(Properties.Settings.Default.MySqlConnectionString);
conn.Open();
MySqlCommand cmd = new MySqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT name, phone, address FROM residents WHERE name = @name";
cmd.Parameters.AddWithValue("@name", name);
MySqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
{
Console.WriteLine("请输入新的电话号码:");
string phone = Console.ReadLine();
Console.WriteLine("请输入新的地址:");
string address = Console.ReadLine();
reader.Close();
cmd.CommandText = "UPDATE residents SET phone = @phone, address = @address WHERE name = @name";
cmd.Parameters.AddWithValue("@phone", phone);
cmd.Parameters.AddWithValue("@address", address);
int rows = cmd.ExecuteNonQuery();
if (rows > 0)
{
Console.WriteLine("个人信息修改成功!");
}
else
{
Console.WriteLine("未找到该居民!");
}
}
else
{
Console.WriteLine("未找到该居民!");
}
}
}
}
```
这只是一个简单的示例,你可以根据你的需求进行修改和扩展。