【黑马程序员】2013年12月9日学习记录


今天学习的是数据库的相关知识。

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语句,一般用来执行updatadeleteinsert语句)

或者用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.      好的习惯是需要连接数据库时连接,不用时关闭,不用一直打开链接。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值