VS2010+WPF+LINQ for MySQL
学习wpf,连接数据库和linq for mysql
1、参考以前博文,恢复在 Vs2010+linQ for Mysql的环境。
2、建立 wpf工程,参照1,生成 datacontext.cs ,并拷入几个动态库、DBHelper.cs ,添加程序配置文件 app.config,并参照1例子工程进行修改;
3、参考以下博文数据源之 Datatable,并利用DBHelper类的GetDataTableBySql方法,生成GetDataTable(),分别实践 listbox 、listview两种绑定方法。
4、继续修改为 linq for mysql 的 绑定方法
前台不变;
后台把数据源整合为 test()
private void test()
{
using (MySqlConnection conn = new MySqlConnection(dbServer))
{
Equipment db = new Equipment(conn);
var q = (from i in db.Hardware
select new { i.Model, i.Name, i.Site }).ToList();
listView2.DataContext = q;
}
}
运行结果与上面相同;
http://www.cnblogs.com/linlf03/archive/2011/09/06/2168440.html
一、Binding是WPF的核心,WPF的数据源有以下几种:
1、ADO.NET中的DataTable
2、xml数据源
3、object数据源
4、元素控件属性
二、WPF绑定各种数据源索引
三、这里做一些简单的实例。
1.ListBox绑定Datatable数据源
前台代码
<ListBox Margin="12,32,12,329" ItemsSource="{Binding}" Name="listBox1"> <ListBox.ItemTemplate> <DataTemplate> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/> <ColumnDefinition Width="0.5*"/> </Grid.ColumnDefinitions> <TextBlock Text="{Binding Path=ID}"/> <TextBlock Text="{Binding Path=Name}"/> <TextBlock Grid.Column="1" Text="{Binding Path=Age}" Background="{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"/> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox> |
后台代码:
public Window1() { InitializeComponent(); listBox1.DataContext = GetDataTable(); //使用ItemsSource的形式 //listBox1.ItemsSource = GetDataTable().DefaultView; listBox1.SelectedIndex = 0; } |
下面是创建DataTable数据源,当然也可以连接数据库获得数据源
private DataTable GetDataTable() { DataTable data = new DataTable("MyDataTable"); DataColumn ID = new DataColumn("ID");//第一列 ID.DataType = System.Type.GetType("System.Int32"); //ID.AutoIncrement = true; //自动递增ID号 data.Columns.Add(ID); //设置主键 DataColumn[] keys = new DataColumn[1]; keys[0] = ID; data.PrimaryKey = keys; data.Columns.Add(new DataColumn("Name",typeof(string)));//第二列 data.Columns.Add(new DataColumn("Age",typeof(string)));//第三列 data.Rows.Add(1," XiaoM"," 20"); data.Rows.Add(2," XiaoF"," 122"); data.Rows.Add(3," XiaoA", " 29"); data.Rows.Add(4," XiaoB", " 102"); return data; } |
下面是类型转换
public class BackgroundConverter : IValueConverter{ #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { Color color = new Color(); int num = int.Parse(value.ToString()); if (num > 100) color = Colors.Yellow; else if (num < 50) color = Colors.LightGreen; else color = Colors.LightPink; return new SolidColorBrush(color); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotImplementedException(); } #endregion} |
效果图:
2、使用ListView的形式绑定DataTable数据源,数据源与第一个是一样的,不同的地方是:
前台代码:
<ListView Height="262" Margin="-12,0,12,39" VerticalAlignment="Bottom" ItemsSource="{Binding}" Name="listView2" HorizontalAlignment="Center"> <ListView.View> <GridView> <GridViewColumn Header="编号" DisplayMemberBinding="{Binding Path=ID}" Width="100" /> <GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Path=Name}" Width="100"/> <GridViewColumn Header="年龄" Width="100"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock Grid.Column="1" Text="{Binding Path=Age}" Foreground="{Binding Path=Age, Converter={StaticResource BackgroundConverter}}"/> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn> </GridView> </ListView.View> </ListView> |
后台代码:
listView2.DataContext = GetDataTable().DefaultView; |
效果图:
3、如果数据源已经是DataTable,则使用LINQ检索结果的形式为:
DataTable dt = GetDataTable();listView2.ItemsSource = from row in dt.Rows.Cast<DataRow>() where Convert.ToString(row["Name"]).StartsWith("XiaoF") select new Student() { ID = int.Parse(row["ID"].ToString()), Name = row["Name"].ToString(), Age = row["Age"].ToString() }; |
其它不变.上面的代码是检索Name以XiaoF开始的数据,只有一条数据。 效果图如下:
VS2010+WPF+LINQ for MySQL的更多相关文章
- 水晶报表在vs2010 WPF环境下的尝试
原文:水晶报表在vs2010 WPF环境下的尝试 由于VS2010没有集成水晶报表组件,尝试前必须先安装 水晶报表 for VS2010,若机器未安装的可点击这里>>>下载安装 新建 ...
- DBLinq (MySQL exactly) Linq To MySql(转)
Linq to SQL很好用,可惜只支持Microsoft SQL Server 和Microsoft SQL Server Compact Edition,目前比较成熟的免费解决方法是DBLinq( ...
- DBLinq (MySQL exactly) Linq To MySql
http://blog.csdn.net/feihu_guest/article/details/7346948 DBLinq (MySQL exactly) Linq To MySql http:/ ...
- 借助linq2db使用Linq访问MySQL
linq2db (@github)支持Linq访问多种数据库.使用它操作MySQL非常简单,但使用方式上有一些“新奇”,特记录一下. 下载安装(@NuGet)以及使用教程(@For MySQL). 使 ...
- vs2013 linq to mysql
安装文件 1.下载安装文件 2.创建项目 3.创建mysql数据连接 4.新建ADO.NET数据模型 项目实现代码 using (WorkerContainer db = new WorkerCont ...
- Vs2010 WPF 项目打包
[转]图解WPF程序打包全过程 首先打开已经完成的工程,如图: 下面开始制作安装程序包. 第一步:[文件]——[新建]——[项目]——安装项目. 名称——可以自己根据要求修改. 位置——是指你要制作的 ...
- WPF DataGrid显示MySQL查询信息,且可删除、修改、插入 (原发布 csdn 2018-10-13 20:07:28)
1.入行好几年了,工作中使用数据库几率很小(传统行业).借着十一假期回家机会,学习下数据库. 2.初次了解数据库相关知识,如果本文有误,还望告知. 3.本文主要目的,记录下wpf界面显示数据库信息,且 ...
- wpf linq数据库无法插入
最近做wpf应用程序,遇到一个很奇怪的问题,我用代码往数据库里插入数据成功了,但去vs的服务器资源管理器里查看数据库总是最开始的样子,什么都没有插入进去,然后就检查代码,打日志查看sql语句,发现都没 ...
- vs2010 EF4.0 访问mysql
需要安装mysql-connector-net-6.3.5 6.8.9的安装完后在dbfirst里找不到对应的提供程序 链接字符串里需要 指定下编码(如果不是gbk的话) <add name=& ...
随机推荐
- POJ 3278 抓奶牛(BFS入门题)
描述 农夫约翰已被告知逃亡牛的位置,并希望立即抓住她.他开始于一个点Ñ(0≤ Ñ ≤100,000)上的数线和牛是在点ķ(0≤ ķ上相同数目的线≤100,000).农夫约翰有两种交通方式:步行和传送. ...
- 超轻量级Json框架SmartObject
最近我在codeplex上发了一个项目SmartObject(基于framework4.5,目前是1.0版本).用法如下: // HowToUse using Spider.Data; //json ...
- Sign Up Account In CloudAMQP
CloudAMQP 有多种账号级别,请参考下面的链接的内容访问你可以注册的级别:https://www.cloudamqp.com/plans.html 作为测试来说,你可以注册免费的的消息. 你可以 ...
- form表单的提交方式
开发中表单提交是很常见的,表单的提交方式也多种方式. 1.使用submit按钮提交表单 <input type="submit"/> <!DOCTYPE htm ...
- 『Python CoolBook』Cython_高效数组操作
数组运算加速是至关科学计算重要的领域,本节我们以一个简单函数为例,使用C语言为python数组加速. 一.Cython 本函数为一维数组修剪最大最小值 version1 @cython.boundsc ...
- 『TensorFlow』读书笔记_降噪自编码器
『TensorFlow』降噪自编码器设计 之前学习过的代码,又敲了一遍,新的收获也还是有的,因为这次注释写的比较详尽,所以再次记录一下,具体的相关知识查阅之前写的文章即可(见上面链接). # Aut ...
- Matlab:Crank Nicolson方法求解线性抛物方程
tic; clear clc M=[,,,,,,];%x的步数 K=M; %时间t的步数 :length(M) hx=/M(p); ht=/K(p); r=ht/hx^; %网格比 x=:hx:; t ...
- linux配置redis三种启动方式
下载 wget http://download.redis.io/releases/redis-4.0.9.tar.gz 解压 tar -xzf redis-4.0.9.tar.gz -C /usr/ ...
- 线程基础:多任务处理——MESI协议以及带来的问题:伪共享
1.概述 本文和后续文章将着眼CPU的工作原理阐述伪共享的解决方法和volatile关键字的应用. 2.复习CPU工作原理2.1.CPU工作原理要清楚理解本文后续内容,就需要首先重新概述一下JVM的内 ...
- Mac下安装Apache
没错,这一篇又是因为头头给我安排的任务得出来的总结. 本身Mac是有自带的Apache,但是对并发量有限制,这个可以在系统的配置参数里面看,所以本人决定重新安装一个,来,请按照下面的流程来走: 一.下 ...