//先上我的代码吧(这个可以排序):
//按奖金的升序排序.
void OrderDataByPriceAscending(object sender, EventArgs e) {
var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
orderby employee.Field<int>("FAge") ascending
select employee;
dataGV.DataSource = sorted.AsDataView();
}//(这个不可以排序)
//按奖金的升序排序.
void OrderDataByPriceAscending(object sender, EventArgs e) {
var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
orderby employee.Field<float>("FPrice") ascending
select employee;
dataGV.DataSource = sorted.AsDataView();
}
报错:
Specified cast is not valid.
大家看图就知道了,我的字段"FPrice"明明是 float 怎么说格式转换的时候出问题?运行界面:字段定义:
//按奖金的升序排序.
void OrderDataByPriceAscending(object sender, EventArgs e) {
var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
orderby employee.Field<int>("FAge") ascending
select employee;
dataGV.DataSource = sorted.AsDataView();
}//(这个不可以排序)
//按奖金的升序排序.
void OrderDataByPriceAscending(object sender, EventArgs e) {
var sorted = from employee in set.Tables["T_Employee"].AsEnumerable()
orderby employee.Field<float>("FPrice") ascending
select employee;
dataGV.DataSource = sorted.AsDataView();
}
报错:
Specified cast is not valid.
大家看图就知道了,我的字段"FPrice"明明是 float 怎么说格式转换的时候出问题?运行界面:字段定义:
为什么不用实体类呢~
你是说 那个 LinqToSQLServer的 .dbml 类么?
Table不好么?
而C#中的float,数据库中没有对应的类型....
http://www.cnblogs.com/abllyboy/archive/2010/11/11/1875122.html
你是说 那个 LinqToSQLServer的 .dbml 类么?
Table不好么?ORM是个概念; Linq to sql其中的一种实现,LinqToSql已经不更新了,有更强大的EntityFramwork;
也可以自己简单第实现ORM,如下
public static List<Entity> GetData()
{
const string sql = ""; List<Entity> list = new List<Entity>();
using (SqlConnection conn = new SqlConnection(GlobalSetting.ConnectionString))
{
conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Entity entity = new Entity();
entity.ID = Guid.Parse(dr["ID"].ToString());
....//这部分可以使用CodeSmith生成 list.Add(entity);
}
} return list;
}返回的是强类型的数据集合,比Table好多~
可以看看我科普的帖子
http://bbs.csdn.net/topics/390435776
你是说 那个 LinqToSQLServer的 .dbml 类么?
Table不好么?ORM是个概念; Linq to sql其中的一种实现,LinqToSql已经不更新了,有更强大的EntityFramwork;
也可以自己简单第实现ORM,如下
public static List<Entity> GetData()
{
const string sql = ""; List<Entity> list = new List<Entity>();
using (SqlConnection conn = new SqlConnection(GlobalSetting.ConnectionString))
{
conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Entity entity = new Entity();
entity.ID = Guid.Parse(dr["ID"].ToString());
....//这部分可以使用CodeSmith生成 list.Add(entity);
}
} return list;
}返回的是强类型的数据集合,比Table好多~
可以看看我科普的帖子
http://bbs.csdn.net/topics/390435776
你说到 "强数据类型"或称 Type DataSet ...我就懂了...不过我开始学C#的时候,在强数据类型用的是 .mdf数据库,如果托数据库表,让其生成的结构...不过...这个我没有用过...
你是说 那个 LinqToSQLServer的 .dbml 类么?
Table不好么?ORM是个概念; Linq to sql其中的一种实现,LinqToSql已经不更新了,有更强大的EntityFramwork;
也可以自己简单第实现ORM,如下
public static List<Entity> GetData()
{
const string sql = ""; List<Entity> list = new List<Entity>();
using (SqlConnection conn = new SqlConnection(GlobalSetting.ConnectionString))
{
conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Entity entity = new Entity();
entity.ID = Guid.Parse(dr["ID"].ToString());
....//这部分可以使用CodeSmith生成 list.Add(entity);
}
} return list;
}返回的是强类型的数据集合,比Table好多~
可以看看我科普的帖子
http://bbs.csdn.net/topics/390435776
我看了一下你的文档...也查了一下关于这个的概率...
这是我最近写的测试...你看看是不是你说的意思:
public partial class Form1: Form {
private string _strConn = @"Data Source=.\SQLExpress;Initial Catalog=DB_Person;Integrated Security=True"; //连接字符串.
private LinqToSQLServerAdderDataContext _linq; //Linq对象.
public Form1() {
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e) {
ShowPerson();
} private void btnAdd_Click(object sender, EventArgs e) {
T_Person p = new T_Person(); //新增的对象.
p.FName = txtName.Text;
p.FAge = int.Parse(txtAge.Text);
_linq.T_Persons.InsertOnSubmit(p);
_linq.SubmitChanges();
ShowPerson(); //新增后重显示.
} //显示数据.
void ShowPerson() {
_linq = new LinqToSQLServerAdderDataContext(_strConn);
var result = from person in _linq.T_Persons
select new {
序号 = person.FId,
姓名 = person.FName,
年龄 = person.FAge
};
dataGV.DataSource = result;
}
}
当数据类型是Numeric(10, 6)这种时,应该就可以转成C#中的float,主要是精确度以及数值范围
你是说 那个 LinqToSQLServer的 .dbml 类么?
Table不好么?ORM是个概念; Linq to sql其中的一种实现,LinqToSql已经不更新了,有更强大的EntityFramwork;
也可以自己简单第实现ORM,如下
public static List<Entity> GetData()
{
const string sql = ""; List<Entity> list = new List<Entity>();
using (SqlConnection conn = new SqlConnection(GlobalSetting.ConnectionString))
{
conn.Open(); SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
Entity entity = new Entity();
entity.ID = Guid.Parse(dr["ID"].ToString());
....//这部分可以使用CodeSmith生成 list.Add(entity);
}
} return list;
}返回的是强类型的数据集合,比Table好多~
可以看看我科普的帖子
http://bbs.csdn.net/topics/390435776
我看了一下你的文档...也查了一下关于这个的概率...
这是我最近写的测试...你看看是不是你说的意思:
public partial class Form1: Form {
private string _strConn = @"Data Source=.\SQLExpress;Initial Catalog=DB_Person;Integrated Security=True"; //连接字符串.
private LinqToSQLServerAdderDataContext _linq; //Linq对象.
public Form1() {
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e) {
ShowPerson();
} private void btnAdd_Click(object sender, EventArgs e) {
T_Person p = new T_Person(); //新增的对象.
p.FName = txtName.Text;
p.FAge = int.Parse(txtAge.Text);
_linq.T_Persons.InsertOnSubmit(p);
_linq.SubmitChanges();
ShowPerson(); //新增后重显示.
} //显示数据.
void ShowPerson() {
_linq = new LinqToSQLServerAdderDataContext(_strConn);
var result = from person in _linq.T_Persons
select new {
序号 = person.FId,
姓名 = person.FName,
年龄 = person.FAge
};
dataGV.DataSource = result;
}
}是的,但如果有分层就更好了~
搜搜 三层架构
如果可以的话 还是用EntityFrameword
两者差不多~