第三次C#可视化编程数据库相关学习中,涉及到了在Gridview里面对表中数据进行增删改查的操作,学到了新的知识在此做一些整理。
为简化学习总结便于复习,在实验记录中,我尽量避免摘抄大篇幅冗长代码到博客中,努力将自己新学到的一些语句用法和理解在此进行总结。
插入操作
con.Open();
tring insertStr = "INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) " +
"VALUES ('" + StuID + "','" + StuName + "','" + StuSex + "','" + StuSdept + "'," + StuAge + ")";
SqlCommand cmd = new SqlCommand(insertStr, con);
cmd.ExecuteNonQuery();
下面这句代码在完成绑定数据源时就默认存在,所以首先和数据源绑定有关,其次,我们在进行插入操作最后也要加上此句代码,然后才能在程序运行的时候观察到表格信息增加的情况。
所以根据老师所讲和实际操作,个人理解这句代码相当于将绑定数据源的相应表的信息实时展示出来,然后我们在进行操作之后,就相当于起了刷新展示效果的作用。
this.sTUDENTTableAdapter.Fill(this.jXGLDataSet1.STUDENT);
删除操作
con.Open();
string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是ID
string delete_by_id = "delete from Student where Sno=" + SqlCommand cmd = new SqlCommand(delete_by_id, con);
cmd.ExecuteNonQuery();
在删除操作中,又接触到了一句没有见过的代码,结合操作,这个应该是要根据鼠标光标选定的行来确定所指向的元组。
SelectedRows[0]应该就是确定到鼠标光标选定的行
(说实话不太清楚[0]代表的是什么,但是在操作时试了试将这个改成别的,结果提示错误,权当作默认代表确定鼠标选择的哪一行吧)
Cells[0]指的是,既然已经选定了行,要找这一行的哪个格子是目标信息,既然我们用的是学生信息表,所以我们要拿选定的这一行的学号,就是这一行的第一个格子。
Value不用赘述,表达的是返回对应的值,ToString是转化成字符串。
dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
修改操作
con.Open();
string insertStr = "UPDATE Student SET Sname = '" + StuName + "' WHERE Sno = '" + StuID + "'";
SqlCommand cmd = new SqlCommand(insertStr, con);
cmd.ExecuteNonQuery();
修改操作相比前两个操作新的内容相对较少了,即提取查找条件(学号),然后进行更改元组信息(姓名)。
查找操作
sqlConnection.Open();
String select_by_id = "select * from Student where Sno='" + StuID + "'";
SqlCommand sqlCommand = new SqlCommand(select_by_id, sqlConnection);
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader(); BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = sqlDataReader;
dataGridView1.DataSource = bindingSource;
查找操作前面也没有新的内容,但是最后有三行赋值操作,所以在这块进行一下整理和分析。
我们在进行选择操作之后,sqlDataReader就携带着我们执行的信息,但是即使已经执行成功,我们也没有办法将执行结果直接给GridView让其显示,所以我们需要一个BindingSourse类型的中间变量进行传递,然后让GridView展示查询结果。
断点的使用
断点,正如其名,断点的功能在调试程序时起到在某些关键语句停顿的作用,在关键部分停顿便于我们后面的分析程序运行是否正确或者找寻出现错误的地方
如下图,在我们进行插入操作时设置断点,我们可以检查插入语句是否有误,如果有误可以及时进行调试,如果无异常便可点击继续按钮执行下面的代码。
在检查时,我们可以将该字符串放到SQL中进行检查是否有误,但是如果已经执行过的SQL语句的话,就会出现在SQL重复操作的错误提示。
归根结底,我们在用可视化程序编程绑定SQL之后,在C#程序中运用嵌入性SQL,就相当于中间有桥梁代替我们从C#可视化程序传达要执行的SQL语句到SQL Server中进行操作,并把SQL S萼绿儿中的结果进行实时反馈。