IDE:Visual Studio
数据库:SQLserver
默认已经搭建好School数据库,已附上数据库LDF和MDF文件下载链接
使用的IDE是Visual Studio,安装教程如下:
https://blog.csdn.net/InnerPeaceHQ/article/details/121716088
请尽量使用Visual Studio进行实验,特别是当你的数据库是SQLserver的时候。我试过用vscode和idea做这个实验,均失败。vscode要配很多插件然后一堆报错,idea只支持MySQL。
创建项目
安装好Visual Studio后新建项目:
选择带有C#角标的Windows窗体应用(.NET Framework)
注意看清楚必须选择这个一字不差,不要选到什么“窗体控件库”“窗体类库”或者含有VB角标的项目,一定是带有C#角标的Windows窗体应用(.NET Framework)!!!
界面绘制
窗体设计基本操作:
1.工具箱拖拉拽
在左边工具箱进行控件的拖拉拽。如果你这里找不到工具箱可以用快捷键Ctrl + Alt + X调出。
2.修改控件基本信息:
比如我已经拖拽一个button到工作布上,鼠标单击button,右下角显示button的属性
在属性中比较重要的是Text和Name。其中Name的作用是写代码的时候Name要与代码中对这个控件使用的名字一致;Text的作用是修改窗口中该控件显示的文字。单击右边的文字就可以修改。
3.新建窗口:
右键单击项目->添加->新建项
选择“窗体(Windows窗体)”
运用以上操作按照示例把下面三个窗口设计好:
Form1主窗口:
各个控件Name修改:
学号输入框 txt_sid
姓名输入框 txt_sname
查询按钮 btn_find
新增按钮 btn_add
删除按钮 btn_delete
编辑按钮 btn_update
DataGridCiew列表控件 studentsList
Form2新增窗口:
各个控件Name修改:
学号输入框 txt_add_sid
姓名输入框 txt_add_sname
邮箱输入框 txt_add_email
年级输入框 txt_add_grade
确定按钮 btn_confirm_add
Form3修改窗口:
各个控件Name修改:
学号输入框 txt_update_sid
姓名输入框 txt_update_sname
邮箱输入框 txt_update_email
年级输入框 txt_update_grade
确定按钮 btn_confirm_update
配置数据库
修改app.config文件:
<appSettings>
<addkey="connectionString"value="server=localhost;database=School;uid=sa;pwd=xxxx"/>
</appSettings>
请将pwd=xxxx更换为你自己的密码。
右键引用->添加引用
勾选System.Configuration
打开SQL Server Management Studio
如果以前没有配置过的话,应该使用默认的Windows身份验证
连接后,右键单击属性
在“安全性”中,勾选第二项
确保“连接”中的状态如下:
安全性->登录名->sa->右键属性
在这里把密码修改为修改你刚刚在代码里设置的密码:
确保状态中的勾选情况如下:
打开SQL配置管理器:
SQL Server网络配置->SQLEXPRESS的协议->TCP/IP,双击:
在IP地址这里,把IP3的“IP地址”改成“127.0.0.1”,把“TCP端口”改成“1433”
把IPAII的“TCP端口”改成“1433”
点击确定
在SQL Server服务->SQL Server(SQLEXPRESS)右键重启
重启后尝试是否能用SQL Server身份验证登陆成功
编写代码
右键窗口可查看代码
在Form1.cs如下所示位置添加如下代码:
static string connectionString =System.Configuration.ConfigurationManager.AppSettings["connectionString"];
public static DataSet Query(String sql)
{
SqlConnection con = new SqlConnection(connectionString);
SqlDataAdapter sda = new SqlDataAdapter(sql, con);
DataSet ds = new DataSet();
try
{
con.Open();
sda.Fill(ds, "students");
return ds;
}
catch (SqlException e)
{
throw new Exception(e.Message);
}
finally
{
sda.Dispose();
con.Close();
}
}
public static int ExecuteSql(String sql)
{
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand(sql, con);
try
{
con.Open();
int rows = cmd.ExecuteNonQuery();
return rows;
}
catch(SqlException e)
{
throw new Exception(e.Message);
}
finally
{
cmd.Dispose();
con.Close();
}
}
在Form3.cs中修改Form3函数:
public Form3(string sid,string sname,string email,string grade)
{
InitializeComponent();
txt_update_sid.Text = sid;
txt_update_sname.Text = sname;
txt_update_email.Text = email;
txt_update_grade.Text = grade;
}
在主窗口双击“查询”按钮,在生成的函数中填入如下代码:
string sid = txt_sid.Text.Trim();
string sname = txt_sname.Text.Trim();
this.studentsList.DataSource = Query("select * from students where sid like '%" + sid + "%' and sname like '%'").Tables["students"];
在主窗口双击“新增”按钮,在生成的函数中填入如下代码:
Form2 childrenForm = new Form2();
childrenForm.Owner = this;
childrenForm.Show();
在主窗口双击“删除”按钮,在生成的函数中填入如下代码:
int a = studentsList.CurrentRow.Index;
string sid = studentsList.Rows[a].Cells[0].Value.ToString().Trim();
string sql = "delete from students where sid='" + sid + "'";
if(ExecuteSql(sql)>0)
{
MessageBox.Show("删除成功");
}
在主窗口双击“修改”按钮,在生成的函数中填入如下代码:
int a = studentsList.CurrentRow.Index;
string[] str = new string[studentsList.Rows.Count];
for (int i=0; i < studentsList.Columns.Count; i++)
{
str[i] = studentsList.Rows[a].Cells[i].Value.ToString();
}
Form3 childrenForm = new Form3(str[0], str[1], str[2], str[3]);
childrenForm.Owner = this;
childrenForm.Show();
在Form2学生信息添加窗口中双击“确定”按钮,在生成的函数中填入如下代码:
string sid = txt_add_sid.Text.Trim();
string sname = txt_add_sname.Text.Trim();
string email = txt_add_email.Text.Trim();
string grade = txt_add_grade.Text.Trim();
string sql = "insert into students values('" + sid + "','" + sname + "','" + email + "','" + grade + "')";
Form1.ExecuteSql(sql);
this.Close();
在Form3学生信息修改窗口双击“确定”按钮,在生成的函数中填入如下代码:
string sid = txt_update_sid.Text.Trim();
string sname = txt_update_sname.Text.Trim();
string email = txt_update_email.Text.Trim();
string grade = txt_update_grade.Text.Trim();
string sql = "update students set sname='"+sname+"',email='"+email+"',grade='"+grade+"' where sid='"+sid+"'";
Form1.ExecuteSql(sql);
this.Close();
测试程序
运行之前,确保你本地的SQL server数据库中有名为School的数据库,并有名为STUDENTS,包含sid,sname,email,grade四个属性的表。
查询(模糊查询):
添加:
删除:
修改:
参考文章:
https://blog.csdn.net/qq_20115319/article/details/107318790
主要修改了该文章中创建项目时给的截图不对的问题,以及补充了IP配置方面的内容
版权归原作者 sc真的kswl 所有, 如有侵权,请联系我们删除。