WinForm简介
WinForm是.NET开发平台提供的用于开发WinForm应用程序的一个开发环境,命名空间System.Windows.Forms中包含用于创建Windows应用程序用户界面所需要的类。
①WinForm程序的新建
选择Visual Studio 2022菜单栏中的“文件”→“新建”→“项目”命令,打开“新建项目”对话框。在“新建项目”对话框中,选择“Windows窗体应用程序”选项,自定义名称并选择保存位置,然后单击“添加”按钮创建一个WinForm程序。如图所示。(名称我这里是默认的,你也可以自己自定义一个)
Windows程序中包含了多种不同类型的文件。新建的项目的文件结构包含(1)Form1.cs、(2)Form1.cs逻辑代码界面、(3)Form1.Designer.cs、(4)Program.cs
②窗体与控件
Windows窗体和控件是开发C#应用程序的基础,每个Windows窗体和控件都是一个对象。窗体是一个可以用来为用户提供信息以及接收其输入的窗口。控件是能够提供用户界面接口功能的组件。控件可以通过属性设置控制其显示效果,可以对相应的事件做出反应,实现控制或交互功能。
现在我们来利用窗体和控件设计包裹管理系统的主页面。如图所示。
其用到的控件有groupBox、button、dataGridView。可以根据自己喜欢的颜色、字体进行个性化设计,美化主页。
③创建一个类,以进行数据库连接
为了实现button、dataGridView以及后面控件的有效化,所以我们要进行数据库连接。如图所示。
首先,先创建一个类,自定义名称(我这里命名为DataBase),然后输入代码,进行数据库连接。代码如下:String strConnection = "server=XiaoDu;database=Bird;uid=sa;pwd=123456";
SqlConnection conn = new SqlConnection(strConnection);
return conn;
(注意server=自己的主机名,sa以及pwd也是自己设置的)
④属性与事件
窗体和控件都有许多属性,事件指的是可能发生在对象上的,能够被该对象识别同时通过该代码响应或处理的行为。为了实现包裹管理系统,我们要对窗体和控件设置相关的点击事件。如点击刷新按钮,页面就刷新;点击新增按钮,就可以增加新的数据等等。如图所示,在刷新按钮中写入代码,即可实现刷新功能。
同时也别忘了给From1.cs连接数据库,代码也是一样的。
⑤控件连接窗体
因为新增、修改和筛选查询功能需要打开新页面,所以我们要新增窗体,然后连接,实现该功能。如图所示。
(1)新增窗体
(2)修改窗体
(3)筛选查询窗体
设计完新增的窗体后进行点击事件连接。
(button2为新增,button3为修改,button5为筛选查询)代码几乎一样。
increase xz = new increase();
xz.ShowDialog();
然后就可以实现点击按钮打开所连接的页面了。
接下来我们再设置删除按钮的点击事件,以实现系统的删除功能。代码如下:
DataBase db = new DataBase();
SqlConnection conn = db.getConn();
conn.Open();
int rowindex = dataGridView1.CurrentRow.Index;
String value0 = dataGridView1.Rows[rowindex].Cells[0].Value.ToString();
String sql = "delete from Parcel_Table where parcelID='" + value0 + "'";
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery();
MessageBox.Show("删除成功!");
conn.Close();
(注意:button4即为删除按钮)
⑥为所连接的窗体实现其功能
(1)新增窗体
为实现它的新增与取消按钮功能,我们双击新增按钮进入新增窗体编辑代码页面。然后在button1中写入代码,代码如下:
DataBase db = new DataBase();
SqlConnection conn = db.getConn();
conn.Open();
String sql = "insert into Parcel_Table values('" + textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','" + textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','" + textBox7.Text + "','" + textBox8.Text + "')";
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery();
MessageBox.Show("新增成功!");
conn.Close();
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
取消按钮功能的实现即在button2中写入:
this.Close();
(注意:表名需与自己的数据库表名一致)
(2)修改窗体
实现修改功能和实现新增功能的步骤相同,唯一不同的是修改使用的是update语句。代码如下:
DataBase db = new DataBase();
SqlConnection conn = db.getConn();
conn.Open();
String sql = "update Parcel_Table set Status ='" + textBox4.Text + "',CourierCompany ='" + textBox5.Text + "',TrackingNumber ='" + textBox6.Text + "',CreateTime='"+textBox7.Text+ "',LastUpdateTime='"+textBox8.Text+ "' where ParcelID=' "+ textBox1.Text +" '";
SqlCommand comm = new SqlCommand(sql, conn);
comm.ExecuteNonQuery();
MessageBox.Show("修改成功!");
conn.Close();
textBox1.Text = "";
textBox2.Text = "";
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";
textBox6.Text = "";
textBox7.Text = "";
textBox8.Text = "";
取消功能代码与新增窗体一致。
(3)筛选查询窗体
为了能够实现利用用户ID查询数据功能,即代码如下:
DataBase db = new DataBase();
SqlConnection conn = db.getConn();
//打开连接
conn.Open();
//定义sql语句
String sql = "select* from Parcel_Table where UserID = ('" + textBox1.Text + "')";
//创建sql执行对象
SqlCommand comm = new SqlCommand(sql, conn);
//创建数据适配器
SqlDataAdapter sda = new SqlDataAdapter();
//执行sql语句
sda.SelectCommand = comm;
//创建数据集
DataSet ds = new DataSet();
//将对应test表数据保存到数据集合中
sda.Fill(ds, "test1");
//把数据集合中第一个表的数据填充到dataGirdView中
dataGridView1.DataSource = ds.Tables[0];
//关闭连接
conn.Close();
这样就可以完成简单的包裹管理系统啦。