数据绑定与数据库开发基础01

来源:互联网 发布:什么是网络课程 编辑:程序博客网 时间:2024/05/16 09:33

数据绑定与数据库开发基础

DataContext数据上下文

定义类,定义属性;new一个类的实例,给要绑定的控件设定DataContext,如控件名.DataContext=实例名;XAML中要绑定数据属性,如Text=“ {Binding Name(属性名)}”

INotifyPropertyChanged接口:是.net内置的接口,数据绑定会检测DataContext是否实现了INotifyPropertyChanged接口,如果实现了,就会监听PropertyChanged得知属性变化

if(PropertyChanged!= null)

{

PropertyChanged(this,newPropertyChangedEventArgs(“Name”))

}

尽量使用这种方式,少给控件直接赋值

ListBox

Listbox 显示的集合是ItemsSource属性,不是DataContext,如listbox1.ItemsSource=list

默认是把每一项的对象ToString()显示,可以设定DisplayMemberPath显示某个属性

SelectedItem获得的是选中行的对应对象,没有选中行就是null;SelectedValue获得的是选中行对应的对象的SelectedValuePath标志的属性的属性值

DataGrid

AutoGenerateColumns=false禁止自动创建列

<DataGrid.Columns>添加列

<DataGridComboBoxColumnx:Name=” ..” SelectedItemBinding=”{Bingding ..}”

x:Name是自定义的名字,在代码页可访问,并绑定数据源

SQL Server Management Studio

是sqlserver的管理器,不是服务器

ADO.NET

Windows验证:连接字符串DataSource=.;Database=test;Integrated Security=True

SQL验证:

using(SqlConnection conn=new SqlConnection(@”Data Source=.;Initial Catalog=mydb;UserID=sa;Password=1233”)

{

conn.Open();

using(SqlCommand cmd=conn.CreateCommand())

{

cmd.CommandText=” ..”;//执行语句

cmd.ExecuteNonQuery();

}

}

using 资源回收,实现了IDisposible接口

output inserted.Id获取自增字段的Id值

insert into tablename(name,age)output inserted.Id values(“”,10)

DataReader

SqlDataReaderreader=cmd.ExecuteReader();

While(reader.Read())

{

String name=reader.GetString(1)
}

保持与数据库服务器的连接

查询结果是放到数据库中,没有放到客户端,初始指针指向第一条数据之前,只要没有移到最后一条之后,就返回true

reader的GetString、GetInt32等方法只接受整数参数,也就是列的序号,用GetOrdinal方法根据列名动态得到序号

参数化查询防止sql注入

cmd.CommandText=”selectage from table where Name=@name”;

cmd.Parameters.Add(newSqlParameter(“@Name”,txtname.text))或者

cmd.Parameters.AddWithValue(“@Name”,txtname.text)

DataSet离线数据集

将查询结果填充到本地内存中,小数据量,减轻数据库服务器的压力

DataSet相当于本地的一个复杂集合(List<int>)

DataTabletable=dataset.Tables[0]

DataRowCollectionrows=table.Rows

for(inti=0;i<rows.count;i++)

{

DataRow row=rows[i];

stirng  name=(string)row[“name”];

}

App.config

配置文件

<configuration>

<connectionStrings>

<add name=”connstr”connectionString=”..” />

</connectionStrings>

</configuration>

添加System.Configuration的引用

stringconnstr=ConfigurationManager.ConnectionStrings[“connstr”].ConnectionString

SqlHelper

手写SqlHelper

public staticobject ExecuteScalar(string sql,params SqlParameter[] parameters)

{

using(SqlConnectionconn=new SqlConnection(connstr))

{

conn.Open();

using (SqlCommandcmd=conn.CreateCommand())

{

cmd.CommandText=sql;

cmd.Parameters.AddRange(parameters);

returncmd.ExecuteScalar();

}

}

}

Params:长度可变参数

0 0