AspNet开发问题三
基本的操作我这里就不介绍了,像如何在VS2017中新建ASP.NET MVC4,ASP.NET MVC5等,是新建Web Api还是新建空的网站,网上有大量教程,我这里主要介绍我接触的一下主要问题,以及关心的话题。
1.OrmLite连接数据库
为了使用ServiceStack.OrmLite连接Sqlite数据库,简直把我折腾坏了。本来就是从webservice的时代过来的,很久没玩Asp.net了,依然还是.net2.0。为了成功使用Ormlite,强烈建议将解决方案换成.net4.6(最新的),然后依次执行下面的安装:
1 | PM>Install-Package ServiceStack |
基本上就可以使用OrmLite连接sqlite数据库了,主要代码如下:
1 | string sql = string.Format("select `row`,`col`, `{0}`, `{1}`, `{2}`, `{3}` from BXInfo where (col >= {4} AND col <={5}) and (row >= {6} and row <= {7})", pinfo1[0].Name,pinfo1[1].Name, pinfo2[0].Name, pinfo2[1].Name, col, col + 1, row, row + 1); |
2.默认返回json格式数据
ASP.NET 默认返回的格式是Xml格式,有两种方式,需要找到Global.asax文件,在Application_Start()方法中添加一句:
1 | // 使api返回为json |
1.C# web api返回类型设置为json的两种方法
3.修改路由不存在时的返回内容
自定义路由不存在时返回值,找到Global.asax文件,添加如下函数:
1 | protected void Application_EndRequest() |
4.引用不了App_Code中的类:
1.为什么引用不了App_Code里的类
5.指定的转换无效
从数据库查出数据,进行对象转换的时候,出现了这个问题。其实就是数据类型不正确,但是因为这个类包含了很多的属性,我一时也不知道到底哪个字段从数据库读出来然后转换到属性上去有问题。
【解决方法】
根据测试和数据类型转换说明,我的程序里面主要有两个地方不合适:
- 1.数据库类型为 decimal 类型,C# 中应为 decimal 类型
- 2.数据库类型为 smallint 类型,C# 中应为 Int16 类型
还有一个让我感到疑惑的事情,就是有时候你数据库里面是int类型,必须显示的声明为Int32,这个我暂时不知道是不是我程序写的有问题。不同的sql语句查询出来的结果,在进行类型转换的时候会出现不一样的效果。
3.数据库类型为 int 类型,C# 中应为 Int32 类型
4.如果使用 as 语法,decimal 类型,应该使用 0.0 as filed,的形式映射 filed 字段
1.Linq to sql 之 ExecuteQuery 错误:指定的转换无效 这里是DataTime类型的转换
2.SQL Server 数据类型映射
3.Decimal.ToDouble(Decimal) 方法
4.C#中的decimal类型 decimal myMoney = 99.9m;
6.Linq语法
有时候会看到这样的写法,就是直接一个from语法开始的查询
1 | var query = from user in dc.GetTable<Site>() |
1.from clause (C# Reference)