房租管理小软件(四):对linq的使用
1.对LInq的封装如下:
private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();
public static MyFZDataContext a = null;
static String path = Application.StartupPath;
public MyFZDataContext(): base(getConnstring(), mappingSource)
{ } public MyFZDataContext(bool b): base(getConnstring(), mappingSource)
{
this.ObjectTrackingEnabled = b;
} public static string connstring = "";
public static XmlSerialize xml = new XmlSerialize();
public static Common.Setting set = xml.DeSerialize(); public static string getConnstring()
{
String Ip = set.IP;
string user = set.User;
string pass = set.Password;
string DB = set.DB;
connstring = "Data Source=" + Ip + ";Initial Catalog=" + DB + ";Persist Security Info=True;User ID=" + user + ";Password=" + pass + "" + ";Application Name=" + "NetHotel";
return connstring;
} public static MyFZDataContext getDataContext()
{
if (a == null)
{ a = new MyFZDataContext(false);
}
return a; }
2.在代码中使用时加入
using System.Data.Linq;
using System.Linq;
using DataBase;
3.一个从数据库,得到数据的例子
MyFZDataContext dataContext = new MyFZDataContext();
var v1 = from t in dataContext.VIEW_LD
where
t.账号.Contains(textEdit_Search.Text) ||
t.手机.Contains(textEdit_Search.Text) ||
t.承租人.Contains(textEdit_Search.Text)
select t;
DataTable dt = DataFunction.LINQToDataTable(v1);
this.gridControl1.DataSource = dt;
4.事务的使用
#region 增加//增加
MyFZDataContext dataContext = new MyFZDataContext();
if (dataContext.Connection != null) { dataContext.Connection.Open(); }
System.Data.Common.DbTransaction tran = dataContext.Connection.BeginTransaction();
dataContext.Transaction = tran;
try
{
dataContext.SubmitChanges(); tran.Commit();
MessageBox.Show("保存成功");
this.Close();
}
catch (Exception ex)
{ tran.Rollback();
MessageBox.Show(ex.Message);
}
#endregion
5.把得到数据转成dataTable
public static DataTable LINQToDataTable<T>(IEnumerable<T> varlist)
{
DataTable dtReturn = new DataTable(); // column names
PropertyInfo[] oProps = null; if (varlist == null) return dtReturn; foreach (T rec in varlist)
{
//// Use reflection to get property names, to create table, Only first time, others
//will follow
if (oProps == null)
{
oProps = ((Type)rec.GetType()).GetProperties();
foreach (PropertyInfo pi in oProps)
{
Type colType = pi.PropertyType; if ((colType.IsGenericType) && (colType.GetGenericTypeDefinition()
== typeof(Nullable<>)))
{
colType = colType.GetGenericArguments()[];
} dtReturn.Columns.Add(new DataColumn(pi.Name, colType));
}
} DataRow dr = dtReturn.NewRow(); foreach (PropertyInfo pi in oProps)
{
dr[pi.Name] = pi.GetValue(rec, null) == null ? DBNull.Value : pi.GetValue
(rec, null);
} dtReturn.Rows.Add(dr);
}
return dtReturn;
}
房租管理小软件(四):对linq的使用的更多相关文章
- 房租管理小软件(六):通用功能包括时间,效验,MD5加密,XML 操作
1.时间相关 public static DateTime getNow() { MyFZDataContext dataContext = MyFZDataContext.getDataContex ...
- 房租管理小软件(七):flowlayoutPancel 中增加分类控
见下图的 string FNodeName = dt.Rows[i]["FNodeName"].ToString(); ) { RoomControl.Thumbnail.Grou ...
- Qt基于sqlite数据库的管理小软件
闲来无事,写了一个基于sqlite的数据库管理小软件. 先上图 中心思想就是: 创建一个数据库 然后每一个分组对应一个数据表 然后遍历该数据表.将名字以treewidgetItem显示出来.添加删除实 ...
- Mac 上有哪些比较有意思的小软件?
文章素材来源:微博.新浪看点 收录于:风云社区(SCOEE)[提供mac软件下载] 更多专题,可关注小编[磨人的小妖精],查看我的文章,也可上[风云社区 SCOEE],查找和下载相关软件资源. (一) ...
- 66、django之模型层(model)--多表相关操作(图书管理小练习)
前面几篇随笔的数据库增删改查操作都是在单表的操作上的,然而现实中不可能都是单表操作,更多的是多表操作,一对一,一对多,多对多的表结构才是我们经常需要处理的,本篇将带我们了解多表操作的一些相关操作.也会 ...
- django之模型层(model)--多表相关操作(图书管理小练习)
前面几篇随笔的数据库增删改查操作都是在单表的操作上的,然而现实中不可能都是单表操作,更多的是多表操作,一对一,一对多,多对多的表结构才是我们经常需要处理的,本篇将带我们了解多表操作的一些相关操作.也会 ...
- 8个爽滑如丝的Windows小软件,不好用你拿王思葱砸死我
假如我说有一款软件,能顶替60款软件:还有一款软件,能顶替60个你:还有一款软件,好用到60岁你都不想它被顶替.....我知道,你不相信天是蓝的,你不相信雷的回声,你不相信梦是假的,你不相信死无报应. ...
- C# 小软件部分(一)
自己在空闲时分整合.编写了一款小软件程序,命名为魔法兔子,希望大家可以提出意见和指导,此篇文章主要为软件的部分截图和介绍. 软件详情: 1.首先是登录,注册界面. 可以注册自己的账号,后台是腾讯云服务 ...
- 自己工作之余做的OSX小软件
ShareSDK是为iOS.Android.WindowsPhone提供社会功能的一个组件,开发者只需10分钟即可集成到自己的APP中,它不仅支持分享给QQ好友.微信好友.微信朋友圈.新浪微博.腾迅微 ...
随机推荐
- iOS 的 Gif 渲染引擎 FLAnimatedImage-b
公司的项目有个首页加载一张2M左右的git图,刚做的时候是使用的SDWebImage里面的方法: + (UIImage *)sd_animatedGIFNamed:(NSString *)name; ...
- 4.4 spring-自定义标签的解析
1.0 自定义标签的解析. 在之前的章节中,我们完成了对spring 默认标签的加载过程.那么现在我们将开始新的里程, spring 自定义标签的解析; 代码如下: /** * Parse the e ...
- Deadline来了,如何按时结题?
- uva 567
Floyd 算法 就输入麻烦点 #include <iostream> #include <cstring> #include <cstdlib> #inclu ...
- POJ 3904 Sky Code
题意:给定n个数ai, ai <= 10000, n <= 10000, 从中选出4个数要求gcd为1,这样的集合有多少个? 分析:首先总共集合nCr(n, 4) = n*(n-1)*(n ...
- HandlerThread 类的学习(转载)
HandlerThread继承于Thread,所以它本质就是个Thread.HandlerThread类用于方便的创建一个含有looper的线程类,looper用来创建handler类.我们一般不创建 ...
- java 串口通信 代码
下面是我自己实现的串口接收的类,串口发送比较简单,就直接发送就可以了.下面的这个类可以直接使用. package com.boomdts.weather_monitor.util; import ja ...
- VC中支持中文的字符串比较函数
VS2008开发环境,多字符集和UNICODE字符集都可用. WCHAR * mbcsToUnicode(const char *zStr) { int nByte; WCHAR *zMbcsStr; ...
- 一个简单的Android小实例
原文:一个简单的Android小实例 一.配置环境 1.下载intellij idea15 2.安装Android SDK,通过Android SDK管理器安装或卸载Android平台 3.安装J ...
- DSP\BIOS调试Heaps are enabled,but not set correctly
转自:http://blog.sina.com.cn/s/blog_735f291001015t9i.html Heaps are enabled, but the segment for DSP/B ...