最近的一些感受 一周总结
Oct 18

ADO.Net是.NET平台里面最吸引人的地方了。最近参加了一个项目,由于客户要求新增一块。类似的模块已经有了,数据验证和导入。但是看过代码之后发现真的很慢,很多地方是用生成SQL语句来完成的。这样效率很低。所以自己决定用ADO.NET来完成这一任务。

我以前对ADO.NET的理解是:通过这个你可以很方便的处理大量的数据,而不用去和数据库大太多的交道,它可以避免经常的对数据库操作。她是把数据库中的数据先放入服务器中,不直接对数据库操作。另外一点就是效率很高。但是如何去实施,自己真的很不了解。

下面是自己经过三天项目后,自己通过MSDN等资料,收获的一些东西

从数据库中利用ADO.NET读取数据放入DataTable以后,最好给DataTable设置一个主键,这样在以后的调用中就可以使用列名来取某一列了。

            foreach (DataRow dr in Tables["sample"].Rows)
            {
                dr.Columns[0]="";
            }
这样操作一定很不爽,用数字来标识列会让人陷入迷茫中的。特别是列数多的时间。
但是如果给DataTable设置主键了以后,你就可以使用dr.Columns["id"]来访问数据了。
这样会方便许多,而且后期的维护也会简单很多。
ds.Tables["test"].PrimaryKey = new DataColumn[] { ds.Tables["test"].Columns[0] };
这样之后你就可以随心所欲了。
另外就是DataTable中每列的数据类型,在填充数据以后就不可以更改的。所以这点上应该小心一些。
利用DataSet来更新数据库的时间也是很简单的,
SqlCommand cmd = new SqlCommand(SQLStr, conn);
SqlDataAdapter da = new SqlDataAdapter();
da.UpdateCommand = cmd;
da.Update(ds, "old");

一般这样就可以解决问题了,当然了,数据类型一定要一直。至于不一致的时间可以使用cmd.Parameters.Add()来指定。建议最好不管什么操作,都给相应的Command指定一个SqlCommand,以防万一。

还有很多收获,ADO.NET还是个很好的东西的。最近在看IBatIs.net可以说是ADO.net的一个扩充。英文资料太费脑子了。郁闷!

bookmark

written by 刘浏 \\ tags: , ,


Leave a Reply