车库信息管理系统实现
技术
C# + sqlserver
系统功能
- 基本的登录注册
- 车库管理员进行车辆信息的添加,即给车库登记车辆信息
- 管理员对登记信息进行修改
- 管理员对登记信息进行删除
- 管理员对登记信息进行查询
- 管理员对登记的车辆进行进库,出库处理
- 实时统计车库当前停放车辆数量
功能实现
进出库
先上一张进出库图
功能说明
如上图,首先对登记信息进行展示,管理员可以操作车辆的出库和入库。出库车辆及是将车辆的停车楼层和停放位置进行置空处理,相反入库就是依据唯一车牌进行停放位置进行停放入库。同时根据有停放位置的车辆判断是否在车库停放,达到计数目的。
功能实现
public bool UpdateOut(string a)
{
string sqlStr = "update car set 停车楼层='',停放位置='' where 车牌号=@车牌号";
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@车牌号",a)
};
return DBHelper.ExcuteCommand(sqlStr, param);
}
public DataTable GetcarNum() //停放车辆查询
{
string strsql = string.Format("select count(*) counts from car where 停放位置 is not null and 停放位置<>''");
SqlDataAdapter da = new SqlDataAdapter(strsql, DBHelper.connString);
DataSet dt = new DataSet();
da.Fill(dt);
return dt.Tables[0];
}
private void button1_Click(object sender, EventArgs e)
{
//出库
if (textBox1.Text == "")
{
MessageBox.Show("请输入信息");
return;
}
bool res = bk.UpdateOut(textBox1.Text);
if (res)
{
MessageBox.Show("出库成功");
getAll();
label8.Text = bk.GetcarNum().Rows[0]["counts"].ToString();
}
else
{
MessageBox.Show("出库失败");
}
}
车库车辆信息查询
界面图
功能说明
可以通过车牌号和车辆类型(燃油和新能源)进行查询操作,上面图片可以修改的,此处只是演示。
功能实现
public DataTable GetcarOne(string a) //精确查找
{
string strsql = string.Format("select * from car where 车牌号='{0}'", a);
SqlDataAdapter da = new SqlDataAdapter(strsql, DBHelper.connString);
DataSet dt = new DataSet();
da.Fill(dt);
return dt.Tables[0];
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (textBox3.Text.Equals(""))
{
MessageBox.Show("请输入车牌号");
}
else
{
label5.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["品牌"].ToString();
label7.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["车主姓名"].ToString();
label9.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["车主电话"].ToString();
label11.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["车辆类型"].ToString();
label13.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["停车楼层"].ToString();
label15.Text = bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["停放位置"].ToString();
if (bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["车辆照片"].ToString() == "")
{
pictureBox1.Image = null;
label18.Text = "该车辆暂无图片";
}
else
{
bytes = (byte[])bk.SelectcarOne(textBox3.Text).DataSet.Tables[0].Rows[0]["车辆照片"];
pictureBox1.Image = System.Drawing.Image.FromStream(new MemoryStream(bytes));
pictureBox1.SizeMode = PictureBoxSizeMode.Zoom;
}
}
}
catch (Exception ex)
{
MessageBox.Show("未找到车辆!!!");
}
}
private void buttonClass_Click(object sender, EventArgs e)
{
if (cbClass.Text.Equals(""))
{
MessageBox.Show("请选择类别");
}
else
{
dataGridView1.DataSource = bk.SelectOneBoook(cbClass.Text);
}
}
private void button4_Click(object sender, EventArgs e)
{
if (textBox2.Text.Equals(""))
{
MessageBox.Show("请输入车牌号");
}
else
{
string no = textBox2.Text;
Car car = new Car { b1 = no };
bool result = bk.Deletecar(car);
if (result)
{
MessageBox.Show("删除成功");
}
else
{
MessageBox.Show("删除失败");
}
getAll();
textBox2.Text = "";
}
}
其余常规功能
增删查改
以下是对数据库车辆信息的增删查改操作。
public bool Addcar(Car car)
{
string sqlStr = "insert into car (车牌号,品牌,车主姓名,车主电话,车辆类型,停车楼层,停放位置,车辆照片) values(@车牌号,@品牌,@车主姓名,@车主电话,@车辆类型,@停车楼层,@停放位置,@车辆照片)";
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@车牌号",car.b1),
new SqlParameter("@品牌",car.b2),
new SqlParameter("@车主姓名",car.b3),
new SqlParameter("@车主电话",car.b4),
new SqlParameter("@车辆类型",car.b5),
new SqlParameter("@停车楼层",car.b6),
new SqlParameter("@停放位置",car.b7),
new SqlParameter("@车辆照片",car.b8)
};
return DBHelper.ExcuteCommand(sqlStr, param);
}
public bool Updatecar(Car car)
{
string sqlStr = "update car set 品牌=@品牌,车主姓名=@车主姓名,车主电话=@车主电话,车辆类型=@车辆类型,停车楼层=@停车楼层,停放位置=@停放位置,车辆照片=@车辆照片 where 车牌号=@车牌号";
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@车牌号",car.b1),
new SqlParameter("@品牌",car.b2),
new SqlParameter("@车主姓名",car.b3),
new SqlParameter("@车主电话",car.b4),
new SqlParameter("@车辆类型",car.b5),
new SqlParameter("@停车楼层",car.b6),
new SqlParameter("@停放位置",car.b7),
new SqlParameter("@车辆照片",car.b8)
};
return DBHelper.ExcuteCommand(sqlStr, param);
}
public bool Deletecar(Car car)
{
string str = "delete From car where 车牌号 = @车牌号";
SqlParameter[] param = new SqlParameter[]
{
new SqlParameter("@车牌号",car.b1)
};
return DBHelper.ExcuteCommand(str, param);
}
public DataTable GetOne(string a)
{
string strsql = string.Format("select * from Login where 账号='{0}'", a);
SqlDataAdapter da = new SqlDataAdapter(strsql, DBHelper.connString);
DataSet dt = new DataSet();
da.Fill(dt);
return dt.Tables[0];
}
数据库链接帮助类
public class DBHelper
{
public static string connString = @"Data Source=.;Initial Catalog=car;Integrated Security=True";
//定义数据库连接对象
public static SqlConnection conn = new SqlConnection(connString);
//获取数据的方法,返回DataTable对象,参数为一个select语句
public static DataTable GetDataTable(string sqlStr)
{
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
SqlDataAdapter dapt = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dapt.Fill(dt);
return dt;
}
catch
{
return null;
}
finally
{
conn.Close();
}
}
//获取数据的重载方法,返回DataTable对象,参数为一个参数化的select语句和参数对象数组
public static DataTable GetDataTable(string sqlStr, SqlParameter[] param)
{
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
cmd.Parameters.AddRange(param);
SqlDataAdapter dapt = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
dapt.Fill(dt);
return dt;
}
catch
{
return null;
}
finally
{
conn.Close();
}
}
//执行更新的方法,返回一个布尔值,参数为一个insert|update|delete语句
public static bool ExcuteCommand(string sqlStr)
{
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
conn.Close();
}
}
//执行更新的重载方法,返回一个布尔值,参数为一个参数化的insert|update|delete语句和参数对象数组
public static bool ExcuteCommand(string sqlStr, SqlParameter[] param)
{
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlStr, conn);
cmd.Parameters.AddRange(param);
cmd.ExecuteNonQuery();
return true;
}
catch
{
return false;
}
finally
{
conn.Close();
}
}
public static bool ExcuteCommand(List<String> sqlStr, List<SqlParameter[]> param)
{
int i = 0;
SqlCommand cmd = new SqlCommand();
using (TransactionScope ts = new TransactionScope())
{
cmd.Connection = conn;
conn.Open();
try
{
foreach (string item in sqlStr)
{
cmd.CommandType = CommandType.Text;//设置命令类型为SQL文本命令
cmd.CommandText = item;//设置要对数据源执行的SQL语句
cmd.Parameters.AddRange(param[i]);
i++;
cmd.ExecuteNonQuery();//执行SQL语句并返回受影响的行数
}
ts.Complete();
return true;
}
catch
{
return false;
}
finally
{
conn.Close();
sqlStr.Clear();
}
}
}
}
以上为本小系统核心步骤逻辑,更多程序源码获取点我进入