今天学习的是数据库的相关知识。
1. 数据库的表必须要有主键,主键分为两种,业务主键和逻辑主键。
业务主键是把有实际意义的字段作为主键,而逻辑主键是系统自动标识的一串唯一的数字。逻辑主键比业务主键更方便,不易出错。
2. SQL语句。
SQL语句一般有四种,
(1) 插入(insert into 表名(字段,字段) values(字段对应的值,字段对应的值))
(2) 查询(select 字段 from 表名 where 条件 order by 字段 desc/asc)(order by 要放在where 后面)
(3) 更新(update 表名 set 字段相关的计算)
(4) 删除(delete from 表名 where 字段=记录)
除此之外,还有给字段起别名:(select 字段 as 别名 from 表名)
3. 模糊搜索。
在SQL语句后面加like ‘X%’,%代表若干字符。
4. ADO.NET。
ADO.NET 是.NET 中用来向数据库提交执行SQL语句的类库。
5. 数据库连接语句。
Using(sqlconnection conn=new sqlconnection(“Data Source=./ Initial Catalog=MyTest; User ID=sa;Password=*********”));
6. Using。
Using可以自动进行数据回收,节约系统资源。用using比用close和dispose好。
7. 在VS中执行SQL语句。
Using(sqlcommend cmd=conn.creatcommend())
{
Cmd.CommandText=“SQL语句”
Cmd.ExecuteNonQuery()(用来执行SQL语句,一般用来执行updata,delete,insert语句)
或者用cmd.ExecuteScalar();(用来返回只有一行一列的结果,即selece,返回值为object类型)
8. ExecutedReader。结果放在数据库中,没有放在客户端,初始指针放在客户端,每调用一次reader指针下移一条,直到移到最后一条为止
9. 注入漏洞。SQL语句在vs中,可以直接用+来拼接,用户输入的文本与程序中的SQL语句正好拼接成新的SQL语句,造成漏洞。最好不用拼字符串的方法读取文本框的值。更好的赋值方法是,
//SQL语句
cmd.CommandText = "select * from T_Staff where age>@age";
//将文本框txtDataset的值赋到SQL语句中
cmd.Parameters.Add(new SqlParameter("@age", txtDataset.Text));
10. 离线数据集。
//sqldataadapter是一个帮我们把sqlcommand查询结果填充到dataset中的类
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
//dataset相当于本地一个复杂的集合(相当于list<>)
DataSet dataset = new DataSet();
//把sqlcommand查询结果填充到dataset中
adapter.Fill(dataset);//执行cmd并且把查询结果放入dataset中
//指定数据库中第几个表
DataTable table = dataset.Tables[0];
//表中符合条件的行的集合
DataRowCollection rows =table.Rows;
//循环赋值
for (int i = 0; i < rows.Count; i++)
{
//遍历全部行
DataRow row = rows[i];
//取出第i行的age
int age = (int)row["Age"];
//取出第i行的name
string name = (string)row["Name"];
//输出
MessageBox.Show(age + "," + name);
11. 好的习惯是需要连接数据库时连接,不用时关闭,不用一直打开链接。