客运综合管理系统项目解析-安全检查(模块)-车辆信息

2.3-2 车辆信息

       安全检查-车辆信息是在已有司机信息后新增班次信息。班次名称新增时会自动检测是否已有新增的班次,保证班次不会重复会自动清空,在选择车辆型号(大/中/小型车)或者编辑座位数时,系统会自动检测对应型号的车是否超过对应的最大座位数和加座数.新增班次信息后可以对其添加座位最后进人售票管理-售票,检票管理-检票,出车,到达等一系列流程,当需要报废某班次信息直接点击当前行报废即可,此时对应的班次信息状态为报废.其它功能如图2.3-2


从界面上可以看到我们这里用到工具箱的控件有:

控件名称

说明

容器控件()GroupBox

每个控件都可以根据需要的功能更改其属性,右键查看.也可以进行编辑事件-->找到一个闪电图标点击查看需要的事件,例如:查询按钮(btnSrean)是修改过按钮文本Text属性的重命名!

btnSrean_Click这是单击查询事件,还有很多的事件根据项目需求找到来编辑.

 

公共控件(下拉框)ComboBox

公共控件(文字描写)Label

公共控件(按钮)Button

公共控件(日期)DateTimePicker

公共控件(文本框)TextBox

所有Windows窗体(dgv)DataGridView

所有Windows窗体(右键功能)ContextMenStrip

车辆信息功能实现:

第一步:数据库

1、  表与表关系(图2.3-3)


从上面可以知道用到的表有:

表1:车辆表  (VehicleList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

VehicleID

int - Identity

主键

车辆ID

VehicleNumber

char (100)

 

车辆编号

VehicleBlockNumber

char (100)

 

车牌号

VehicleStateID

int

外键

车辆状态ID

MotorcadeID

int

外键

车队ID

VehicleClearID

int

外键

车辆明细ID

VehicleTypeID

int

外键

车型ID

DriverID

int

外键

司机ID

DeputyDriverOneID

int

外键

副司机1ID

DeputyDriverTwoID

int

外键

副司机2ID

StationID

int

外键

站点ID

LineID

int

外键

线路ID

OpenVehicleTime

datetime

 

发车时间

ASeatNumberID

int

外键

座号ID

EntireTicketNumber

char (100)

 

全票数

HalfTicketNumber

char (100)

 

半票数

DiscountTicketNumber

char (100)

 

打折票数

FreeTicketNumber

char (100)

 

免票数

FeeRateID

int

外键

费率ID

SeatNumber

char (100)

 

座位数

AddSeatNumber

char (100)

 

加座数

TotalSum

decimal (18, 2)

 

总金额

Remarks

char (100)

 

备注

ClassesLongStopID

int

外键

班次长停ID

ClassesRepeatID

int

外键

班次循环ID

ClassesNewsID

int

外键

班次信息ID

Classes

char (100)

 

班次

OpenVehicleSiteID

int

外键

发车站ID

EndVehicleSiteID

int

外键

终点站ID

DeductFeeNo

bit

 

扣费否

MotorTypeNumber

char (100)

 

发动机型号

MotorNumber

char (100)

 

发动机号

VehicleAlterTypeCase

char (100)

 

车辆改型情况

WhetherCheck

char (100)

 

是否安检

SafeCheckNo

bit

 

安检否

表2:站点表  (StationList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

StationID

int - Identity

主键

站点ID

StationNumber

char (100)

 

站点编号

StationName

char (100)

 

站点名称

WindowID

int

外键

窗口ID

StopNo

bit

 

调用否

表3:车辆状态表  (VehicleStateList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

VehicleStateID

int - Identity

主键

车辆状态ID

VehicleStateName

char (100)

 

车辆状态MC

表4:线路表 (LineList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

LineID

int - Identity

主键

线路ID

LineName

char (100)

 

线路MC

VehicleID

int

外键

车辆ID

Remarks

char (100)

 

备注

StopNo

bit

 

调用否

表5:车型表  (VehicleTypeList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

VehicleTypeID

int - Identity

主键

车型ID

VehicleTypeNumber

char (100)

 

车型编号

VehicleTypeName

char (100)

 

车型MC

Load

char (100)

 

载重

表6:员工表 (StaffList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

StaffID

int - Identity

主键

员工ID

StaffNumber

char (100)

 

员工编号

StaffName

char (100)

 

员工姓名

Sex

char (100)

 

性别

IdentityCardNumber

char (100)

 

身份证号

HomeLocation

char (100)

 

家庭地址

Phone

char (100)

 

电话

StaffTypeID

int

外键

员工类型ID

OrganizationID

int

外键

机构ID

StationID

int

外键

站点ID

Remarks

char (100)

 

备注

LeaveOfficeNo

bit

 

离职否

InvokingNo

bit

 

调用否

Date

datetime

 

日期

Photo

nvarchar (3000)

 

相片

表7:司机表  (DriverList)

主要包含如下字段信息:(说明)

列名

数据类型

主键/外键

说明

DriverID

int - Identity

主键

司机ID

DriverNumber

char (100)

 

司机编号

WorkValue

char (100)

 

工价

DriveCardNumber

char (100)

 

驾驶证号

GrantDriveVehicleTypeID

int

外键

准驾车型ID

FollowEnterpriseQualificationCard

char (100)

 

从业资格证

CardCheckDate

datetime

 

证件验期

Remarks

char (100)

 

备注

MountGuardCardValidityDate

datetime

 

上岗证有效期

CardLicenseNewsID

int

外键

证照信息ID

StaffID

int

外键

员工ID

Picture

char (100)

 

图片

下面开始编写数据库储存过程:

数据库对应逻辑层(BLL)和界面层(UIL)文件夹:SafetyCheck_frmVehicleNews(车辆信息窗体和对应的类的存储过程)

USE [客运综合管理系统2015]
GO
/****** Object:  StoredProcedure [dbo].[SafetyCheck_frmVehicleNews]    Script Date: 05/31/2015 15:03:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[SafetyCheck_frmVehicleNews]--[安全检查-车辆信息]
    @Type CHAR(200)='',@VehicleID INT=0,@VehicleBlockNumber CHAR(100)='',@OpenVehicleTime DATETIME='',
    @VehicleTypeID INT=0,@WhetherCheck CHAR(100)='',@DriverID INT=0,@DeputyDriverOneID INT=0,
    @DeputyDriverTwoID INT=0,@SeatNumber CHAR(100)='',@AddSeatNumber CHAR(100)='',@MotorTypeNumber CHAR(100)='',
    @MotorNumber CHAR(100)='',@VehicleAlterTypeCase CHAR(100)='',@Remarks CHAR(100)='',@StationID INT=0,
    @VehicleStateID INT=0,@Classes CHAR(100)='',@OutVehicleID INT=0,@LineID INT=0,@OpenVehicleSiteID INT=0,
    @EndVehicleSiteID INT=0,@SafeCheckNo BIT=0,@DeductFeeNo BIT=0
 

AS
BEGIN
	IF @Type='frmVehicleNews_Load_Classes'--绑定下拉框班次
	BEGIN
	SELECT     VehicleID, LTRIM(RTRIM(Classes)) AS Classes
    FROM       VehicleList
	END
	IF @Type='frmVehicleNews_Load_OutVehicleState'--绑定下拉框出车状况
	BEGIN
	SELECT     VehicleStateID, LTRIM(RTRIM(VehicleStateName)) AS VehicleStateName
    FROM       VehicleStateList
	END
	IF @Type='frmVehicleNews_Load_Line'--绑定下拉框线路
	BEGIN
	SELECT     LineID, LTRIM(RTRIM(LineName)) AS LineName
    FROM       LineList
	END
	IF @Type='frmVehicleNews_Select_dgvDriverNews'--绑定司机信息dgv
	BEGIN
	SELECT     DriverList.DriverID, LTRIM(RTRIM(DriverList.DriverNumber))AS DriverNumber,
	           LTRIM(RTRIM(StaffList.StaffName)) AS DriverName, LTRIM(RTRIM(StaffList.Phone)) AS DriverPhone
    FROM       DriverList INNER JOIN
               StaffList ON DriverList.StaffID = StaffList.StaffID        
    END
    IF @Type='frmVehicleNews_Load_dgvVehicleNews_Select'--车辆信息dgv查询
	BEGIN
    SELECT     VehicleList.VehicleID, LTRIM(RTRIM(VehicleList.Classes)) AS Classes, VehicleList.OpenVehicleTime, LTRIM(RTRIM(VehicleList.VehicleBlockNumber)) AS VehicleBlockNumber, 
               VehicleList.VehicleTypeID, LTRIM(RTRIM(VehicleTypeList.VehicleTypeName)) AS VehicleTypeName, LTRIM(RTRIM(VehicleList.WhetherCheck)) AS WhetherCheck, VehicleList.DriverID, 
               LTRIM(RTRIM(StaffList.StaffNumber)) AS DriverNumber, LTRIM(RTRIM(StaffList.StaffName)) AS DriverName, LTRIM(RTRIM(StaffList.Phone)) AS DriverPhone, 
               LTRIM(RTRIM(DriverList_1.DriverNumber)) AS DeputyDriverOneNumber, LTRIM(RTRIM(StaffList_1.StaffName)) AS DeputyDriverOneName, LTRIM(RTRIM(StaffList_1.Phone)) 
               AS DeputyDriverOnePhone, LTRIM(RTRIM(StaffList_2.StaffNumber)) AS DeputyDriverTwoNumber, LTRIM(RTRIM(StaffList_2.StaffName)) AS DeputyDriverTwoName, LTRIM(RTRIM(StaffList_2.Phone)) 
               AS DeputyDriverTwoPhone, LTRIM(RTRIM(VehicleList.SeatNumber)) AS SeatNumber, LTRIM(RTRIM(VehicleList.AddSeatNumber)) AS AddSeatNumber, LTRIM(RTRIM(VehicleList.MotorTypeNumber)) 
               AS MotorTypeNumber, LTRIM(RTRIM(VehicleList.MotorNumber)) AS MotorNumber, LTRIM(RTRIM(VehicleList.VehicleAlterTypeCase)) AS VehicleAlterTypeCase, LTRIM(RTRIM(VehicleList.Remarks)) 
               AS Remarks, LTRIM(RTRIM(VehicleStateList.VehicleStateName)) AS VehicleStateName, VehicleList.VehicleStateID, VehicleList.StationID, LTRIM(RTRIM(StationList.StationName)) AS StationName, 
               VehicleList.DeputyDriverOneID, VehicleList.DeputyDriverTwoID, LTRIM(RTRIM(LineList.LineName)) AS LineName, LTRIM(RTRIM(StationList_1.StationName)) AS OpenVehicleSite, 
               LTRIM(RTRIM(StationList_2.StationName)) AS EndVehicleSite, VehicleList.SafeCheckNo
    FROM       VehicleList INNER JOIN
               VehicleTypeList ON VehicleList.VehicleTypeID = VehicleTypeList.VehicleTypeID INNER JOIN
               DriverList ON VehicleList.DriverID = DriverList.DriverID INNER JOIN
               StaffList ON DriverList.StaffID = StaffList.StaffID INNER JOIN
               DriverList AS DriverList_1 ON VehicleList.DeputyDriverOneID = DriverList_1.DriverID INNER JOIN
               StaffList AS StaffList_1 ON DriverList_1.StaffID = StaffList_1.StaffID INNER JOIN
               DriverList AS DriverList_2 ON VehicleList.DeputyDriverTwoID = DriverList_2.DriverID INNER JOIN
               StaffList AS StaffList_2 ON DriverList_2.StaffID = StaffList_2.StaffID INNER JOIN
               VehicleStateList ON VehicleList.VehicleStateID = VehicleStateList.VehicleStateID INNER JOIN
               StationList ON VehicleList.StationID = StationList.StationID INNER JOIN
               LineList ON VehicleList.LineID = LineList.LineID INNER JOIN
               StationList AS StationList_1 ON VehicleList.OpenVehicleSiteID = StationList_1.StationID INNER JOIN
               StationList AS StationList_2 ON VehicleList.EndVehicleSiteID = StationList_2.StationID
    WHERE      VehicleList.DeductFeeNo=0
    ORDER BY   VehicleList.OpenVehicleTime DESC--数据按日期最新排序
    END
    IF @Type='btnInsert_Click_Insert_VehicleNews'--新增车辆信息
    BEGIN
    BEGIN TRAN
    INSERT INTO VehicleList
                (VehicleBlockNumber,OpenVehicleTime, VehicleTypeID, WhetherCheck,
                 DriverID, DeputyDriverOneID, DeputyDriverTwoID, SeatNumber, 
                 AddSeatNumber, MotorTypeNumber, MotorNumber, VehicleAlterTypeCase, 
                 Remarks,StationID,VehicleStateID,Classes,LineID,OpenVehicleSiteID,EndVehicleSiteID,SafeCheckNo,DeductFeeNo)
    VALUES      (@VehicleBlockNumber,@OpenVehicleTime,@VehicleTypeID,@WhetherCheck,
                 @DriverID,@DeputyDriverOneID,@DeputyDriverTwoID,@SeatNumber,
                 @AddSeatNumber,@MotorTypeNumber,@MotorNumber,@VehicleAlterTypeCase,
                 @Remarks,@StationID,@VehicleStateID,@Classes,@LineID,@OpenVehicleSiteID,@EndVehicleSiteID, @SafeCheckNo,@DeductFeeNo)       
    SELECT       @@IDENTITY
    COMMIT TRAN       
    END
     IF @Type='frmVehicleNews_Load_Update_SelectVehicleNewsID'--dgv查询ID绑定数据
	BEGIN
    SELECT     VehicleList.VehicleID, VehicleList.Classes, VehicleList.OpenVehicleTime, VehicleList.VehicleBlockNumber, VehicleList.VehicleTypeID, VehicleTypeList.VehicleTypeName, VehicleList.WhetherCheck, 
               VehicleList.DriverID, StaffList.StaffNumber AS DriverNumber, StaffList.StaffName AS DriverName, StaffList.Phone AS DriverPhone, DriverList_1.DriverNumber AS DeputyDriverOneNumber, 
               StaffList_1.StaffName AS DeputyDriverOneName, StaffList_1.Phone AS DeputyDriverOnePhone, StaffList_2.StaffNumber AS DeputyDriverTwoNumber, 
               StaffList_2.StaffName AS DeputyDriverTwoName, StaffList_2.Phone AS DeputyDriverTwoPhone, VehicleList.SeatNumber, VehicleList.AddSeatNumber, VehicleList.MotorTypeNumber, 
               VehicleList.MotorNumber, VehicleList.VehicleAlterTypeCase, VehicleList.Remarks, VehicleStateList.VehicleStateName, VehicleList.VehicleStateID, VehicleList.StationID, StationList.StationName, 
               LineList.LineName, StationList_1.StationName AS OpenVehicleSite, StationList_2.StationName AS EndVehicleSite, VehicleList.OpenVehicleSiteID, VehicleList.EndVehicleSiteID
    FROM       VehicleList INNER JOIN
               VehicleTypeList ON VehicleList.VehicleTypeID = VehicleTypeList.VehicleTypeID INNER JOIN
               DriverList ON VehicleList.DriverID = DriverList.DriverID INNER JOIN
               StaffList ON DriverList.StaffID = StaffList.StaffID INNER JOIN
               DriverList AS DriverList_1 ON VehicleList.DeputyDriverOneID = DriverList_1.DriverID INNER JOIN
               StaffList AS StaffList_1 ON DriverList_1.StaffID = StaffList_1.StaffID INNER JOIN
               DriverList AS DriverList_2 ON VehicleList.DeputyDriverTwoID = DriverList_2.DriverID INNER JOIN
               StaffList AS StaffList_2 ON DriverList_2.StaffID = StaffList_2.StaffID INNER JOIN
               VehicleStateList ON VehicleList.VehicleStateID = VehicleStateList.VehicleStateID INNER JOIN
               StationList ON VehicleList.StationID = StationList.StationID INNER JOIN
               LineList ON VehicleList.LineID = LineList.LineID INNER JOIN
               StationList AS StationList_1 ON VehicleList.OpenVehicleSiteID = StationList_1.StationID INNER JOIN
               StationList AS StationList_2 ON VehicleList.EndVehicleSiteID = StationList_2.StationID
    WHERE      VehicleList.VehicleID=@VehicleID
    END
    IF @Type='btnUpdate_Click_Update_VehicleNews'--修改车辆信息
    BEGIN
    UPDATE     VehicleList
    SET        VehicleBlockNumber=@VehicleBlockNumber,OpenVehicleTime=@OpenVehicleTime,VehicleTypeID=@VehicleTypeID,DeputyDriverOneID=@DeputyDriverOneID,DeputyDriverTwoID=@DeputyDriverTwoID,
SeatNumber=@SeatNumber,AddSeatNumber=@AddSeatNumber,MotorTypeNumber=@MotorTypeNumber,   MotorNumber=@MotorNumber,VehicleAlterTypeCase=@VehicleAlterTypeCase,Remarks=@Remarks,     StationID=@StationID,VehicleStateID=@VehicleStateID,Classes=@Classes,LineID=@LineID,
              OpenVehicleSiteID=@OpenVehicleSiteID,
               EndVehicleSiteID=@EndVehicleSiteID
    WHERE      VehicleList.VehicleID=@VehicleID
    END
    IF @Type='btnDelete_Click_Delete_VehicleNews'--删除车辆信息
	BEGIN
	UPDATE     VehicleList
	SET        VehicleList.DeductFeeNo=1
	WHERE      VehicleList.VehicleID=@VehicleID
	END
    IF @type='frmVehicleNews_CheckUpdate'--安检
	BEGIN
	UPDATE     VehicleList
    SET        VehicleList.SafeCheckNo=1
	WHERE      VehicleList.VehicleID=@VehicleID
	END
	
	IF @type='frmVehicleNews_OutVehicle'--出车
	BEGIN
	UPDATE     VehicleList
    SET        VehicleStateID =3
	WHERE      VehicleList.VehicleID=@VehicleID
	UPDATE     OutVehicleList
	SET        OutVehicleList.UserTo=2
	WHERE      OutVehicleList.OutVehicleID=@OutVehicleID
	END
	IF @type='frmVehicleNews_OutVehicleNows'--出车信息
	BEGIN
	SELECT     OutVehicleID, VehicleStateID, OutVehicleTime, VehicleID, UserTo
    FROM       OutVehicleList
    WHERE      OutVehicleList.VehicleID=@VehicleID AND OutVehicleList.UserTo=1
	END
    IF @Type='frmVehicleNews_Load_SelectPhoto'--绑定图片
	BEGIN
	SELECT     VehicleID, VehicleNumber, VehicleBlockNumber
    FROM       VehicleList
    END		
END

第二步:服务端BLL(逻辑层)写方法<---调用数据库代码:

对应文件夹: SafetyCheck_frmVehicleNews.cs(车辆信息类)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel; //添加命名空间
using System.Data; //添加命名空间
using System.Data.SqlClient;//添加命名空间

namespace BLL客运综合管理系统.SafeCheck
{
    [ServiceContract]//添加服务标签
    public class frmVehicleNews
    {
        DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod();//实例化调用数据库方法
        #region 绑定下拉框班次方法
        [OperationContract]//添加行为标签
        public DataSet frmVehicleNews_Load_Classes()//自定义方法名称
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_Classes";//对应数据库方法名称
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds; //返回值
        }
        #endregion
        #region 绑定下拉框出车状况方法
        [OperationContract]
        public DataSet frmVehicleNews_Load_OutVehicleState()
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_OutVehicleState";
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 绑定单击txt司机信息dgv方法
        [OperationContract]
        public DataSet frmVehicleNews_Select_dgvDriverNews()
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Select_dgvDriverNews";
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 绑定dgv车辆信息方法
        [OperationContract]
        public DataSet frmVehicleNews_Load_dgvVehicleNews_Select()
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_dgvVehicleNews_Select";
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 新增车辆信息方法
        [OperationContract]
        public DataSet btnInsert_Click_Insert_VehicleNews(string strVehicleBlockNumber, DateTime dtOpenVehicleTime, int intVehicleTypeID, 
                                                      string strWhetherCheck, int intDriverID,int intDeputyDriverOneID, int intDeputyDriverTwoID,
                                                      string strSeatNumber, string strAddSeatNumber, string strMotorTypeNumber, string strMotorNumber,
                                                      string strVehicleAlterTypeCase, string strRemarks, int intStationID, int intVehicleStateID, string strClasses,
                                                      int LineID, int OpenVehicleSiteID, int EndVehicleSiteID, bool boolSafeCheckNo, bool DeductFeeNo)
        {  
         SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleBlockNumber", SqlDbType.Char),
                                                new SqlParameter("@OpenVehicleTime", SqlDbType.DateTime),
                                                new SqlParameter("@VehicleTypeID", SqlDbType.Int),
                                                new SqlParameter("@WhetherCheck", SqlDbType.Char),
                                                new SqlParameter("@DriverID", SqlDbType.Int),
                                                new SqlParameter("@DeputyDriverOneID", SqlDbType.Int),
                                                new SqlParameter("@DeputyDriverTwoID", SqlDbType.Int),
                                                new SqlParameter("@SeatNumber", SqlDbType.Char),
                                                new SqlParameter("@AddSeatNumber", SqlDbType.Char),
                                                new SqlParameter("@MotorTypeNumber", SqlDbType.Char),
                                                new SqlParameter("@MotorNumber", SqlDbType.Char),
                                                new SqlParameter("@VehicleAlterTypeCase", SqlDbType.Char),
                                                new SqlParameter("@Remarks", SqlDbType.Char),
                                                new SqlParameter("@StationID", SqlDbType.Int),
                                                new SqlParameter("@VehicleStateID", SqlDbType.Int),
                                                new SqlParameter("@Classes", SqlDbType.Char),
                                                new SqlParameter("@LineID", SqlDbType.Int),
                                                new SqlParameter("@OpenVehicleSiteID", SqlDbType.Int),
                                                new SqlParameter("@EndVehicleSiteID", SqlDbType.Int),
                                                new SqlParameter("@SafeCheckNo", SqlDbType.Bit),
                                                new SqlParameter("@DeductFeeNo", SqlDbType.Bit)
                                             };
            mySqlParameters[0].Value = "btnInsert_Click_Insert_VehicleNews";
            mySqlParameters[1].Value = strVehicleBlockNumber;
            mySqlParameters[2].Value = dtOpenVehicleTime;
            mySqlParameters[3].Value = intVehicleTypeID;
            mySqlParameters[4].Value = strWhetherCheck;
            mySqlParameters[5].Value = intDriverID;
            mySqlParameters[6].Value = intDeputyDriverOneID;
            mySqlParameters[7].Value = intDeputyDriverTwoID;
            mySqlParameters[8].Value = strSeatNumber;
            mySqlParameters[9].Value = strAddSeatNumber;
            mySqlParameters[10].Value = strMotorTypeNumber;
            mySqlParameters[11].Value = strMotorNumber;
            mySqlParameters[12].Value = strVehicleAlterTypeCase;
            mySqlParameters[13].Value = strRemarks;
            mySqlParameters[14].Value = intStationID;
            mySqlParameters[15].Value = intVehicleStateID;
            mySqlParameters[16].Value = strClasses;
            mySqlParameters[17].Value = LineID;
            mySqlParameters[18].Value = OpenVehicleSiteID;
            mySqlParameters[19].Value = EndVehicleSiteID;
            mySqlParameters[20].Value = boolSafeCheckNo;
            mySqlParameters[21].Value = DeductFeeNo;
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region dgv查询ID绑定数据方法
        [OperationContract]
        public DataSet frmVehicleNews_Load_Update_SelectVehicleNewsID(int intVehicleID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_Update_SelectVehicleNewsID";
            mySqlParameters[1].Value = intVehicleID;
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 修改车辆信息方法
        [OperationContract]
        public int btnUpdate_Click_Update_VehicleNews(string strVehicleBlockNumber, DateTime dtOpenVehicleTime, int intVehicleTypeID, 
                                                      string strWhetherCheck,int intDriverID,int intDeputyDriverOneID, int intDeputyDriverTwoID,
                                                      string strSeatNumber, string strAddSeatNumber, string strMotorTypeNumber,string strMotorNumber,
                                                      string strVehicleAlterTypeCase, string strRemarks, int intStationID, int intVehicleStateID, string strClasses, int intVehicleID,
                                                      int LineID, int OpenVehicleSiteID, int EndVehicleSiteID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleBlockNumber", SqlDbType.Char),
                                                new SqlParameter("@OpenVehicleTime", SqlDbType.DateTime),
                                                new SqlParameter("@VehicleTypeID", SqlDbType.Int),
                                                new SqlParameter("@WhetherCheck", SqlDbType.Char),
                                                new SqlParameter("@DriverID", SqlDbType.Int),
                                                new SqlParameter("@DeputyDriverOneID", SqlDbType.Int),
                                                new SqlParameter("@DeputyDriverTwoID", SqlDbType.Int),
                                                new SqlParameter("@SeatNumber", SqlDbType.Char),
                                                new SqlParameter("@AddSeatNumber", SqlDbType.Char),
                                                new SqlParameter("@MotorTypeNumber", SqlDbType.Char),
                                                new SqlParameter("@MotorNumber", SqlDbType.Char),
                                                new SqlParameter("@VehicleAlterTypeCase", SqlDbType.Char),
                                                new SqlParameter("@Remarks", SqlDbType.Char),
                                                new SqlParameter("@StationID", SqlDbType.Int),
                                                new SqlParameter("@VehicleStateID", SqlDbType.Int),
                                                new SqlParameter("@Classes", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                                new SqlParameter("@LineID", SqlDbType.Int),
                                                new SqlParameter("@OpenVehicleSiteID", SqlDbType.Int),
                                                new SqlParameter("@EndVehicleSiteID", SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "btnUpdate_Click_Update_VehicleNews";
            mySqlParameters[1].Value = strVehicleBlockNumber;
            mySqlParameters[2].Value = dtOpenVehicleTime;
            mySqlParameters[3].Value = intVehicleTypeID;
            mySqlParameters[4].Value = strWhetherCheck;
            mySqlParameters[5].Value = intDriverID;
            mySqlParameters[6].Value = intDeputyDriverOneID;
            mySqlParameters[7].Value = intDeputyDriverTwoID;
            mySqlParameters[8].Value = strSeatNumber;
            mySqlParameters[9].Value = strAddSeatNumber;
            mySqlParameters[10].Value = strMotorTypeNumber;
            mySqlParameters[11].Value = strMotorNumber;
            mySqlParameters[12].Value = strVehicleAlterTypeCase;
            mySqlParameters[13].Value = strRemarks;
            mySqlParameters[14].Value = intStationID;
            mySqlParameters[15].Value = intVehicleStateID;
            mySqlParameters[16].Value = strClasses;
            mySqlParameters[17].Value = intVehicleID;
            mySqlParameters[18].Value = LineID;
            mySqlParameters[19].Value = OpenVehicleSiteID;
            mySqlParameters[20].Value = EndVehicleSiteID;
            int i = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
            return i;
        }
        #endregion
        #region 删除车辆信息方法
        [OperationContract]
        public int btnDelete_Click_Delete_VehicleNews(int intVehicleID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "btnDelete_Click_Delete_VehicleNews";
            mySqlParameters[1].Value = intVehicleID;
            return myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
        }
        #endregion
        #region 安检方法
        [OperationContract]
        public int frmVehicleNews_CheckUpdate(int intVehicleID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_CheckUpdate";
            mySqlParameters[1].Value = intVehicleID;
            int  dt = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
            return dt;
        }
        #endregion
        #region 出车方法
        [OperationContract]
        public int frmVehicleNews_OutVehicle(int intVehicleID, int intOutVehicleID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                                new SqlParameter("@OutVehicleID", SqlDbType.Int)
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_OutVehicle";
            mySqlParameters[1].Value = intVehicleID;
            mySqlParameters[2].Value = intOutVehicleID;
            int dt = myDALMethod.UpdateData("SafetyCheck_frmVehicleNews", mySqlParameters);
            return dt;
        }
        #endregion
        #region 绑定图片方法
        [OperationContract]
        public DataSet frmVehicleNews_Load_SelectPhoto()
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_SelectPhoto";
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 报班方法
        [OperationContract]
        public DataSet frmVehicleNews_OutVehicleNows(int intVehicleID)
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                                new SqlParameter("@VehicleID", SqlDbType.Int),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_OutVehicleNows";
            mySqlParameters[1].Value = intVehicleID;
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
        #region 绑定下拉框线路方法
        [OperationContract]
        public DataSet frmVehicleNews_Load_Line()
        {
            SqlParameter[] mySqlParameters = {
                                                new SqlParameter("@Type", SqlDbType.Char),
                                             };
            mySqlParameters[0].Value = "frmVehicleNews_Load_Line";
            DataTable dt = myDALMethod.QueryDataTable("SafetyCheck_frmVehicleNews", mySqlParameters);
            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            return ds;
        }
        #endregion
    }
}

第三步:客户端UIL(界面层)写调用方法<---调用BLL(逻辑层)代码:

对应文件夹: SafetyCheck_frmVehicleNews.cs(车辆信息窗体)对应各种功能详解:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text; //添加命名空间
using System.Windows.Forms;//添加命名空间

namespace XX集团客运综合管理系统client.SafeCheck
{
    public partial class frmVehicleNews : Form
    {
        public frmVehicleNews()
        {
            InitializeComponent();
        }
        BLL客运综合管理系统.SafeCheck.frmVehicleNews.frmVehicleNewsClient myfrmVehicleNewsClient =
            new BLL客运综合管理系统.SafeCheck.frmVehicleNews.frmVehicleNewsClient();//实例化调用BLL方法使用
        BLL客运综合管理系统.SafeCheck.frmDriverNews.frmDriverNewsClient myfrmDriverNewsClient =
            new BLL客运综合管理系统.SafeCheck.frmDriverNews.frmDriverNewsClient();//实例化调用BLL方法使用
        BLL客运综合管理系统.LeadDemand.frmSettleAccounts.frmSettleAccountsClient myfrmSettleAccountsClient = new BLL客运综合管理系统.LeadDemand.frmSettleAccounts.frmSettleAccountsClient();//实例化调用BLL方法使用
        BLL客运综合管理系统.frmMain.frmMainClient myfrmMainClient = new BLL客运综合管理系统.frmMain.frmMainClient();//实例化调用BLL方法使用
        int intStaffFlag = 0;//声明变量:0是司机,1是司机1,2是司机2
        public delegate void ChangeFormColor(bool topmost); //自定义方法使用
        public delegate void ChangeFormColor1(bool topmost1); //自定义方法使用
        public event ChangeFormColor ChangeColor; //自定义方法使用
        public event ChangeFormColor1 ChangeColor1;//自定义方法使用
        private void frmCheLiangXinXi_FormClosing(object sender, FormClosingEventArgs e)
        {
            ChangeColor1(true); //开关
            ChangeColor(true);
        }
        #region frmVehicleNews_Load事件功能
        DataTable dtdgvVehicleNews;//声明一个全局变量
        bool KaiGuan = false;//设置一个开关
        private void frmVehicleNews_Load(object sender, EventArgs e)
        {
            try
            {
                dtdgvVehicleNews = myfrmVehicleNewsClient.frmVehicleNews_Load_dgvVehicleNews_Select().Tables[0];
<img src="https://img-blog.csdn.net/20150603221449794?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
                dgvVehicleNews.DataSource = dtdgvVehicleNews;//dgv绑定数据
                this.dgvVehicleNews = SYS_PublicStaticClass.SetDgv(dgvVehicleNews);//dgv序号
                this.dgvVehicleNews.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框
                this.dgvVehicleNews.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中
                this.dgvVehicleNews.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中
                DataTable dtcboClasses = myfrmVehicleNewsClient.frmVehicleNews_Load_Classes().Tables[0];
<img src="https://img-blog.csdn.net/20150603221711661?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
                cboClassesOne.DataSource = dtcboClasses;//绑定班次下拉框方法
                cboClassesOne.DisplayMember = "Classes";
                cboClassesOne.ValueMember = "VehicleID";
                cboClassesOne.SelectedIndex = -1;
                DataTable dtcboVehicleType = myfrmDriverNewsClient.frmDriverInformation_Load_CheckVehicle().Tables[0];
<img src="https://img-blog.csdn.net/20150603221727448?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
<pre name="code" class="csharp" style="font-size: 18px;">//绑定车型
cboVehicleType.DataSource = dtcboVehicleType; cboVehicleType.DisplayMember = "VehicleTypeName"; cboVehicleType.ValueMember = "VehicleTypeID"; cboVehicleType.SelectedIndex = -1; DataTable dtcboStation = myfrmDriverNewsClient.frmDriverInformation_Load_StationName().Tables[0]; cboStation.DataSource = dtcboStation;//绑定下拉框站点方法 cboStation.DisplayMember = "StationName"; cboStation.ValueMember = "StationID"; cboStation.SelectedIndex = -1;
 
<img src="https://img-blog.csdn.net/20150603222003284?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="middle" alt="" />
                cboStationOne.DataSource = dtcboStation.Copy();//绑定站点需要复制用同样数据使用时
                cboStationOne.DisplayMember = "StationName";
                cboStationOne.ValueMember = "StationID";
                cboStationOne.SelectedIndex = -1;
                cboArriveStation.DataSource = dtcboStation.Copy();
                cboArriveStation.DisplayMember = "StationName";
                cboArriveStation.ValueMember = "StationID";
                cboArriveStation.SelectedIndex = -1;
                DataTable dtcboOutVehicleState = myfrmVehicleNewsClient.frmVehicleNews_Load_OutVehicleState().Tables[0]; //获取dt
                cboOutVehicleState.DataSource = dtcboOutVehicleState;
                cboOutVehicleState.DisplayMember = "VehicleStateName";
                cboOutVehicleState.ValueMember = "VehicleStateID";
                cboOutVehicleState.SelectedIndex = -1;<pre name="code" class="csharp" style="font-size: 18px;">//绑定出车状况
 
<img src="https://img-blog.csdn.net/20150603222004197?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvR1hfRmVuZ1dlaUppZQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align="baseline" alt="" />
                cboOutVehicleStateOne.DataSource = dtcboOutVehicleState.Copy();
                cboOutVehicleStateOne.DisplayMember = "VehicleStateName";
                cboOutVehicleStateOne.ValueMember = "VehicleStateID";
                cboOutVehicleStateOne.SelectedIndex = -1;
                DataTable dtLine = myfrmVehicleNewsClient.frmVehicleNews_Load_Line().Tables[0];
                cboLine.DataSource = dtLine;
                cboLine.DisplayMember = "LineName";
                cboLine.ValueMember = "LineID";
                cboLine.SelectedIndex = -1;<pre name="code" class="csharp" style="font-size: 18px;">//绑定线路下拉框
DataTable dtdgvDriverNews = myfrmVehicleNewsClient.frmVehicleNews_Select_dgvDriverNews().Tables[0]; dgvDriverNews.DataSource = dtdgvDriverNews; dtpRegisterDate.Format = DateTimePickerFormat.Custom;//设置时间格式2015-04-21 19:55:00 dtpRegisterDate.CustomFormat = "yyyy-MM-dd HH:mm:ss"; dtpOpenDate.Format = DateTimePickerFormat.Custom;//时间格式2015-04-21 19:55:00 dtpOpenDate.CustomFormat = "yyyy-MM-dd HH:mm:ss"; KaiGuan = true; //开关值是真 } catch { } } #endregion #region 打开dgv选择员工信息传递参数是为区别是司机还是同副司机1还是副司机2(都是同一个页面)功能
 
<pre name="code" class="csharp" style="font-size: 18px;">//点击<span style="font-family: Arial, Helvetica, sans-serif;">司机事件</span>
private void txtDriverNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true; //隐藏DGV显示出来 intStaffFlag = 0; //获取对应所代表的司机 this.dgvDriverNews = SYS_PublicStaticClass.SetDgv(dgvDriverNews);//dgv序号 this.dgvDriverNews.CellBorderStyle = DataGridViewCellBorderStyle.Sunken;//设置dgv三维凹陷边框 this.dgvDriverNews.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv列标题居中 this.dgvDriverNews.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//设置dgv单元格内容居中 }
 
<pre name="code" class="csharp" style="font-size: 18px;">//点击<span style="font-family: Arial, Helvetica, sans-serif;">副司机1事件</span>
private void txtDeputyDriverOneNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true;//隐藏的dgv显示出来 intStaffFlag = 1;//绑定对应的司机 }
//点击<span style="font-family: Arial, Helvetica, sans-serif;">副司机2事件</span>
private void txtDeputyDriverTwoNumber_Click(object sender, EventArgs e) { dgvDriverNews.Visible = true; //隐藏的dgv显示出来 intStaffFlag = 2; //绑定对应的司机 } #endregion #region 鼠标离开dgv后会隐藏dgv
 
<pre name="code" class="csharp" style="font-size: 18px;">//点击DGV离开<span style="font-family: Arial, Helvetica, sans-serif;">事件</span>
private void dgvDriverNews_MouseLeave(object sender, EventArgs e)//鼠标离开事件 { dgvDriverNews.Visible = false;//隐藏dgv } #endregion #region 点击显示dgv选择员工功能
 
<pre name="code" class="csharp" style="font-size: 18px;">//DGV双击<span style="font-family: Arial, Helvetica, sans-serif;">事件</span>
private void dgvDriverNews_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.RowIndex >= 0)//如果双击的行不是标题 { if (intStaffFlag == 0) //判断条件是否成立 { txtDriverNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim();//获取相对应的文本值 txtDriver.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDriverPhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim();//绑定对应数据 PublicStaticObject.intDriverID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value);//获取公共ID方便调用 } else if (intStaffFlag == 1) { txtDeputyDriverOneNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim(); txtDeputyDriverOne.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDeputyDriverOnePhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim(); PublicStaticObject.intDeputyDriverOneID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value); } else if (intStaffFlag == 2) { txtDeputyDriverTwoNumber.Text = dgvDriverNews.CurrentRow.Cells["司机编号"].Value.ToString().Trim(); txtDeputyDriverTwo.Text = dgvDriverNews.CurrentRow.Cells["司机名称"].Value.ToString().Trim(); txtDeputyDriverTwoPhone.Text = dgvDriverNews.CurrentRow.Cells["司机电话"].Value.ToString().Trim(); PublicStaticObject.intDeputyDriverTwoID = Convert.ToInt32(dgvDriverNews.CurrentRow.Cells["司机ID"].Value); } dgvDriverNews.Visible = false; //显示的DGV再次隐藏起来 } } #endregion #region 多条件查询功能 private void btnSearch_Click(object sender, EventArgs e) { try { DataView dvVheicleNewsInformation = new DataView(dtdgvVehicleNews);//实例化调用参数 string strClassesOne = ""; string strStation = ""; string strOutVehicleState = ""; string strWhetherCheckNo = "";//声明变量并赋值 if (cboClassesOne.SelectedValue != null)//判断下拉框是否为空 { strClassesOne = cboClassesOne.Text.Trim();//获取下拉框文本值 } if (cboStation.SelectedValue != null) { strStation = cboStation.Text.Trim(); } if (cboOutVehicleState.SelectedValue != null) { strOutVehicleState = cboOutVehicleState.Text.Trim(); } if (cboWhetherCheckNo.Text != null) { strWhetherCheckNo = cboWhetherCheckNo.Text.Trim(); } dvVheicleNewsInformation.RowFilter = "Classes LIKE '%" + strClassesOne + "%'AND StationName LIKE'%" + strStation + "%'AND VehicleStateName LIKE'%" + strOutVehicleState + "%'AND WhetherCheck LIKE'%" + strWhetherCheckNo + "%'"; dgvVehicleNews.DataSource = dvVheicleNewsInformation.ToTable();//返回数据查询 } catch { } } #endregion #region 重置功能 private void btnReset_Click(object sender, EventArgs e) { txtClasses.Text = "";//清空文本数据 txtVehicleBlockNumber.Text = ""; cboVehicleType.Text = ""; cboWhetherCheck.Text = ""; txtDriverNumber.Text = ""; txtDriver.Text = ""; txtDriverPhone.Text = ""; txtDeputyDriverOneNumber.Text = ""; txtDeputyDriverOne.Text = ""; txtDeputyDriverOnePhone.Text = ""; txtDeputyDriverTwoNumber.Text = ""; txtDeputyDriverTwo.Text = ""; txtDeputyDriverTwoPhone.Text = ""; txtSeatNumber.Text = ""; txtAddSeatNumber.Text = ""; txtMotorTypeNumber.Text = ""; txtMotorNumbe.Text = ""; txtVehicleAlterTypeCase.Text = ""; txtRemarks.Text = ""; cboClassesOne.Text = ""; cboStation.Text = ""; cboOutVehicleState.Text = ""; cboWhetherCheckNo.Text = "";//清空数据 } #endregion #region dgv单击获取ID功能 private void dgvVehicleNews_CellClick(object sender, DataGridViewCellEventArgs e) { PublicStaticObject.intVehicleThreeID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value); //绑定对应的公共ID方便调用 PublicStaticObject.intDriverID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["员工ID"].Value); PublicStaticObject.intDeputyDriverOneID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["副司机1ID"].Value); PublicStaticObject.intDeputyDriverTwoID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["副司机2ID"].Value);//点击事件获取需要的公共ID } #endregion #region 安检功能 private void btnCheck_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要安检:" + txtClasses.Text + "班次信息?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //获取值判断条件是否成立 if (str == true) { MessageBox.Show("对不起!已经安检过了,不用重复安检!!!"); return; } else { if (myfrmVehicleNewsClient.frmVehicleNews_CheckUpdate(PublicStaticObject.intVehicleThreeID) > 0) //判断条件如果成立 { MessageBox.Show("安检:" + txtClasses.Text + "班次成功!"); frmVehicleNews_Load(null, null); //调用方法 } else { MessageBox.Show("安检失败!"); frmVehicleNews_Load(null, null); } } } } catch { } } #endregion #region 出车功能 private void btnOutVehicle_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要把:" + txtClasses.Text + "班次出车?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { int intOutVehicleID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆状态ID"].Value); //获取ID if (intOutVehicleID == 3) { MessageBox.Show("此车已经出过了!请重新选择还没出车的数据!!!"); return; } else { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //获取是否值 if (str == true) //判断是否成立 { if (dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value != null) { int intVehicle = (int)dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value; DataTable dt = myfrmVehicleNewsClient.frmVehicleNews_OutVehicleNows(intVehicle).Tables[0]; int intOutVehicleOneID = (int)dt.Rows[0]["OutVehicleID"];//执行出车方法 if (myfrmVehicleNewsClient.frmVehicleNews_OutVehicle(PublicStaticObject.intVehicleThreeID, intOutVehicleOneID) > 0) { MessageBox.Show(txtClasses.Text + "班次出车成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("出车失败!"); frmVehicleNews_Load(null, null); return; } } } else { MessageBox.Show("请先安检!"); return; } } } } catch { MessageBox.Show("数据有误,请检查出车代码!"); } } #endregion #region 新增车辆信息功能 private void btnInsert_Click(object sender, EventArgs e) { if (cboVehicleType.Text == "" || cboWhetherCheck.Text == "")//判断条件是否同时满足 { MessageBox.Show("注意!所有下拉框的数据都不能为空,否则不能新增!!!");//提示框内容 return; } DateTime dtOutVehicleTime = Convert.ToDateTime(dtpOpenDate.Text.ToString().Trim()); if (MessageBox.Show("您确定要新增车辆并第一次出车时间为:(" + dtOutVehicleTime + ")?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { try { string strVehicleBlockNumber = txtVehicleBlockNumber.Text.ToString().Trim();//绑定对应文本值 DateTime dtOpenVehicleTime = Convert.ToDateTime(dtpRegisterDate.Text.ToString().Trim()); int intVehicleTypeID = Convert.ToInt32(cboVehicleType.SelectedValue); //绑定对应的ID string strWhetherCheck = cboWhetherCheck.Text.ToString().Trim(); int intDriverID = PublicStaticObject.intDriverID; //赋值 int intDeputyDriverOneID = PublicStaticObject.intDeputyDriverOneID; int intDeputyDriverTwoID = PublicStaticObject.intDeputyDriverTwoID; string strSeatNumber = txtSeatNumber.Text.ToString().Trim(); string strAddSeatNumber = txtAddSeatNumber.Text.ToString().Trim(); string strMotorTypeNumber = txtMotorTypeNumber.Text.ToString().Trim(); string strMotorNumber = txtMotorNumbe.Text.ToString().Trim(); string strVehicleAlterTypeCase = txtVehicleAlterTypeCase.Text.ToString().Trim(); string strRemarks = txtRemarks.Text.ToString().Trim(); int intStationID = Convert.ToInt32(cboStation.SelectedValue); int intVehicleStateID = Convert.ToInt32(cboOutVehicleState.SelectedValue); string strClasses = txtClasses.Text.ToString().Trim(); int LineID = (int)(cboLine.SelectedValue); int OpenVehicleSiteID = Convert.ToInt32(cboStation.SelectedValue); int EndVehicleSiteID = Convert.ToInt32(cboArriveStation.SelectedValue); Boolean boolSafeCheckNo = false; Boolean DeductFeeNo = false; //赋值为false DataTable dt = myfrmVehicleNewsClient.btnInsert_Click_Insert_VehicleNews(strVehicleBlockNumber, dtOpenVehicleTime, intVehicleTypeID, strWhetherCheck, intDriverID, intDeputyDriverOneID, intDeputyDriverTwoID, strSeatNumber, strAddSeatNumber, strMotorTypeNumber, strMotorNumber, strVehicleAlterTypeCase, strRemarks, intStationID, intVehicleStateID, strClasses, LineID, OpenVehicleSiteID, EndVehicleSiteID, boolSafeCheckNo, DeductFeeNo).Tables[0]; int intdgvVehicleNewsSuccess = Convert.ToInt32(dt.Rows[0][0]);//执行新增方法 if (intdgvVehicleNewsSuccess > 0) { int intVehicleStateOneID = 2; int intVehicleID = intdgvVehicleNewsSuccess; int intUserTo = 1; int j = myfrmSettleAccountsClient.frmSettleAccounts_InsertOutVehicle(intVehicleStateOneID, dtOutVehicleTime, intVehicleID, intUserTo); MessageBox.Show("ok!新增数据成功!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); } else { MessageBox.Show("NO!新增失败了!!!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); return; } } catch { MessageBox.Show("新增数据有误,请查看新增代码!!!"); } } } #endregion #region 修改车辆信息功能 private void btnUpdate_Click(object sender, EventArgs e) { if (txtClasses.Text == "")//判断文本是否为空 { MessageBox.Show("注意!请选择一行数据来右键修改!!!"); return; } if (MessageBox.Show("您确定要修改:" + txtClasses.Text + "班次信息?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { try { string strVehicleBlockNumber = txtVehicleBlockNumber.Text.ToString().Trim();//获取对应数据 DateTime dtOpenVehicleTime = Convert.ToDateTime(dtpRegisterDate.Text.ToString().Trim()); int intVehicleTypeID = Convert.ToInt32(cboVehicleType.SelectedValue); //获取下拉框选择时所对应的ID string strWhetherCheck = cboWhetherCheck.Text.ToString().Trim(); int intDriverID = PublicStaticObject.intDriverID; //赋值 int intDeputyDriverOneID = PublicStaticObject.intDeputyDriverOneID; int intDeputyDriverTwoID = PublicStaticObject.intDeputyDriverTwoID; string strSeatNumber = txtSeatNumber.Text.ToString().Trim();//获取值 string strAddSeatNumber = txtAddSeatNumber.Text.ToString().Trim(); string strMotorTypeNumber = txtMotorTypeNumber.Text.ToString().Trim(); string strMotorNumber = txtMotorNumbe.Text.ToString().Trim(); string strVehicleAlterTypeCase = txtVehicleAlterTypeCase.Text.ToString().Trim(); string strRemarks = txtRemarks.Text.ToString().Trim(); int intStationID = Convert.ToInt32(cboStation.SelectedValue); int intVehicleStateID = Convert.ToInt32(cboOutVehicleState.SelectedValue); string strClasses = txtClasses.Text.ToString().Trim(); int intVehicleID = PublicStaticObject.intVehicleThreeID; int LineID = (int)(cboLine.SelectedValue); int OpenVehicleSiteID = Convert.ToInt32(cboStation.SelectedValue); int EndVehicleSiteID = Convert.ToInt32(cboArriveStation.SelectedValue); int intUpdatedgvVehicleNewsSuccess = myfrmVehicleNewsClient.btnUpdate_Click_Update_VehicleNews(strVehicleBlockNumber, dtOpenVehicleTime, intVehicleTypeID, strWhetherCheck, intDriverID, intDeputyDriverOneID, intDeputyDriverTwoID, strSeatNumber, strAddSeatNumber, strMotorTypeNumber, strMotorNumber, strVehicleAlterTypeCase, strRemarks, intStationID, intVehicleStateID, strClasses, intVehicleID, LineID, OpenVehicleSiteID, EndVehicleSiteID);//执行修改方法 if (intUpdatedgvVehicleNewsSuccess > 0) { MessageBox.Show("ok!修改" + txtClasses.Text + "班次信息成功!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); } else { MessageBox.Show("NO!修改失败了!!!"); btnReset_Click(null, null); frmVehicleNews_Load(null, null); return; } } catch { MessageBox.Show("您确定已把数据绑定完成了?"); } } } #endregion #region 报废车辆信息功能 private void btnDelete_Click(object sender, EventArgs e) { try { if (PublicStaticObject.intVehicleThreeID <= 0) //判断公共ID条件是否满足 { MessageBox.Show("对不起!请选择数据后才能报废或者按右键报废!!!"); return; } DialogResult dr = MessageBox.Show("您确定要报废:" + txtClasses.Text + "该班次?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (dr == DialogResult.OK) { int DeleteCount = myfrmVehicleNewsClient.btnDelete_Click_Delete_VehicleNews(PublicStaticObject.intVehicleThreeID);//执行报废方法 if (DeleteCount > 0) //判断条件 { MessageBox.Show("OK!报废成功!!!"); frmVehicleNews_Load(null, null); //调用load事件方法 } else { MessageBox.Show("NO!报废失败!!!"); frmVehicleNews_Load(null, null); return; } } } catch { MessageBox.Show("报废数据有误,请查看代码!!!"); } } #endregion #region 右键功能(新增/修改/删除)功能 private void 新增ToolStripMenuItem_Click(object sender, EventArgs e) { btnInsert_Click(null, null);//调用新增方法 } private void 修改ToolStripMenuItem_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID <= 0) //判断是否成立 { MessageBox.Show("注意!请选择一行数据来绑定修改!!!"); return; } try { DataTable dtVehicleNews = myfrmVehicleNewsClient.frmVehicleNews_Load_Update_SelectVehicleNewsID(PublicStaticObject.intVehicleThreeID).Tables[0]; //获取数据 txtClasses.Text = dtVehicleNews.Rows[0]["Classes"].ToString().Trim();//绑定对应的文本值 dtpRegisterDate.Value = Convert.ToDateTime(dtVehicleNews.Rows[0]["OpenVehicleTime"].ToString().Trim());//绑定对应的文本值 txtVehicleBlockNumber.Text = dtVehicleNews.Rows[0]["VehicleBlockNumber"].ToString().Trim();//绑定对应的文本值 cboVehicleType.Text = dtVehicleNews.Rows[0]["VehicleTypeName"].ToString().Trim();//绑定对应的文本值 cboWhetherCheck.Text = dtVehicleNews.Rows[0]["WhetherCheck"].ToString().Trim();//绑定对应的文本值 txtDriverNumber.Text = dtVehicleNews.Rows[0]["DriverNumber"].ToString().Trim();//绑定对应的文本值 txtDriver.Text = dtVehicleNews.Rows[0]["DriverName"].ToString().Trim(); txtDriverPhone.Text = dtVehicleNews.Rows[0]["DriverPhone"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOneNumber.Text = dtVehicleNews.Rows[0]["DeputyDriverOneNumber"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOne.Text = dtVehicleNews.Rows[0]["DeputyDriverOneName"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverOnePhone.Text = dtVehicleNews.Rows[0]["DeputyDriverOnePhone"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwoNumber.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoNumber"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwo.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoName"].ToString().Trim();//绑定对应的文本值 txtDeputyDriverTwoPhone.Text = dtVehicleNews.Rows[0]["DeputyDriverTwoPhone"].ToString().Trim();//绑定对应的文本值 txtSeatNumber.Text = dtVehicleNews.Rows[0]["SeatNumber"].ToString().Trim();//绑定对应的文本值 txtAddSeatNumber.Text = dtVehicleNews.Rows[0]["AddSeatNumber"].ToString().Trim();//绑定对应的文本值 txtMotorTypeNumber.Text = dtVehicleNews.Rows[0]["MotorTypeNumber"].ToString().Trim();//绑定对应的文本值 txtMotorNumbe.Text = dtVehicleNews.Rows[0]["MotorNumber"].ToString().Trim();//绑定对应的文本值 txtVehicleAlterTypeCase.Text = dtVehicleNews.Rows[0]["VehicleAlterTypeCase"].ToString().Trim();//绑定对应的文本值 txtRemarks.Text = dtVehicleNews.Rows[0]["Remarks"].ToString().Trim();//绑定对应的文本值 cboStation.Text = dtVehicleNews.Rows[0]["StationName"].ToString().Trim();//绑定对应的文本值 cboOutVehicleState.Text = dtVehicleNews.Rows[0]["VehicleStateName"].ToString().Trim();//绑定对应的文本值 cboLine.Text = dtVehicleNews.Rows[0]["LineName"].ToString().Trim();//绑定对应的文本值 cboArriveStation.Text = dtVehicleNews.Rows[0]["EndVehicleSite"].ToString().Trim();//绑定对应数据用于修改 } catch { MessageBox.Show("注意!数据绑定有误,请查看代码!!!"); } } private void 删除ToolStripMenuItem_Click(object sender, EventArgs e) { btnDelete_Click(null, null);//调用删除方法 } #endregion #region 添加座位功能 private void btnPlaySeat_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID > 0) //判断条件 { frmASeat myfrmASeat = new frmASeat();//实例化窗体 myfrmASeat.ShowDialog();//显示在最前面进行下一步操作 } else { MessageBox.Show("请先点击选择一项绑定车辆信息!"); } } #endregion 右键添加座位调用方法,可以调用添加座位方法 private void 添加座位ToolStripMenuItem_Click(object sender, EventArgs e) { if (PublicStaticObject.intVehicleThreeID > 0) //判断公共ID是否成立 { frmASeat myfrmASeat = new frmASeat();//实例化窗体 myfrmASeat.ShowDialog();//显示在最前面 } else { MessageBox.Show("请先点击选择一项绑定车辆信息!"); } } private void 安检ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要安检:" + txtClasses.Text + "该班次车辆?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); if (str == true) { MessageBox.Show("对不起!已经安检过了,不用重复安检!!!"); return; } else { if (myfrmVehicleNewsClient.frmVehicleNews_CheckUpdate(PublicStaticObject.intVehicleThreeID) > 0) //判断方法添加是否成立 { MessageBox.Show("安检:" + txtClasses.Text + "班次成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("安检失败!"); frmVehicleNews_Load(null, null); } } } } catch { MessageBox.Show("安检数据有误,请查看代码!"); } } private void 出车ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (MessageBox.Show("您确定要把:"+ txtClasses.Text +"班次出车?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { int intOutVehicleID = Convert.ToInt32(dgvVehicleNews.CurrentRow.Cells["车辆状态ID"].Value); //绑定ID if (intOutVehicleID == 3) { MessageBox.Show("此车已经出过了!请重新选择还没出车的数据!!!"); return; //返回 } else { Boolean str = Convert.ToBoolean(dgvVehicleNews.CurrentRow.Cells["SafeCheckNo"].Value); //判断条件是否成立 if (str == true) { if (dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value != null) { int intVehicle = (int)dgvVehicleNews.CurrentRow.Cells["车辆ID"].Value; DataTable dt = myfrmVehicleNewsClient.frmVehicleNews_OutVehicleNows(intVehicle).Tables[0]; int intOutVehicleOneID = (int)dt.Rows[0]["OutVehicleID"]; if (myfrmVehicleNewsClient.frmVehicleNews_OutVehicle(PublicStaticObject.intVehicleThreeID, intOutVehicleOneID) > 0) { MessageBox.Show(txtClasses.Text + "班次出车成功!"); frmVehicleNews_Load(null, null); } else { MessageBox.Show("出车失败!"); frmVehicleNews_Load(null, null); } } } else { MessageBox.Show("请先安检!"); } } } } catch { MessageBox.Show("出车数据有误,请查看出车代码!"); } } #region 检测dgv是否已存在该班次功能 private void txtClasses_Leave(object sender, EventArgs e) { for (int i = 0; i < dgvVehicleNews.Rows.Count; i++) { string one = dgvVehicleNews.Rows[i].Cells["班次"].Value.ToString().Trim();//循环遍历获取值 if (one == txtClasses.Text.ToString().Trim())//获取的值加以判断 { MessageBox.Show("注意!已存在该班次!"); txtClasses.Text = ""; } } } #endregion #region 检测不同车类型所对应的最大/小座位数功能 private void cboVehicleType_SelectedIndexChanged(object sender, EventArgs e) { txtSeatNumber_Leave(null, null); txtAddSeatNumber_Leave(null, null); //调用方法显现 } #endregion #region 检测不同最大/小座位数所对应的车类型 private void txtSeatNumber_Leave(object sender, EventArgs e) { if (KaiGuan == true) //开关判断 { if (cboVehicleType.Text == "大型车")//文本判断 { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 60) { MessageBox.Show("注意!已超过大型车的最大座位数:60位!"); //提示框内容 txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 40) { MessageBox.Show("注意!已低于大型车的最小座位数:40位!"); txtSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "中型车") { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 50) { MessageBox.Show("注意!已超过中型车的最大座位数:50位!"); txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 30) { MessageBox.Show("注意!已低于中型车的最小座位数:30位!"); txtSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "小型车") { if (txtSeatNumber.Text != "") { if (Convert.ToInt32(txtSeatNumber.Text) > 40) { MessageBox.Show("注意!已超过小型车的最大座位数:40位!"); txtSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtSeatNumber.Text) < 20) { MessageBox.Show("注意!已低于小型车的最小座位数:20位!"); txtSeatNumber.Text = ""; return; } } } } } #endregion #region 检测不同最大/小加座数所对应的车类型功能 private void txtAddSeatNumber_Leave(object sender, EventArgs e) { if (KaiGuan == true) //开关判断 { if (cboVehicleType.Text == "大型车")//文本判断 { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 6) //判断条件是否成立 { MessageBox.Show("已超过大型车的最大加座数:6位!"); //条件成立时,出现提示框,带有提示内容 txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于大型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "中型车") { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 4) { MessageBox.Show("已超过中型车的最大加座数:4位!"); txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于中型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } if (cboVehicleType.Text == "小型车") { if (txtAddSeatNumber.Text != "") { if (Convert.ToInt32(txtAddSeatNumber.Text) > 2) { MessageBox.Show("已超过小型车的最大加座数:2位!"); txtAddSeatNumber.Text = ""; return; } else if (Convert.ToInt32(txtAddSeatNumber.Text) < 0) { MessageBox.Show("已低于小型车的最小加座数:0位!"); txtAddSeatNumber.Text = ""; return; } } } } } #endregion #region 禁止输入负数功能 private void txtRemarks_KeyPress(object sender, KeyPressEventArgs e) { SYS_PublicStaticClass.txt_GongGong(txtRemarks, e);//调用公共方法 //if (e.KeyChar == '-') //{ // e.Handled = true; //} } #endregion }}
 

以上是安全检查-车辆信息功能实现步骤:数据库-->BLL-->UIL

----实现功能待续!!!

   以上仅供学习参考,禁止商业用途!!!










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值